| Termin | Definicja |
|---|---|
| Rozwiązywanie konfliktów kolacji | Rozwiązywanie konfliktów kolacji wymaga jawnego wskazania COLLATE przy porównywaniu tekstu o różnych ustawieniach. Skąd bierze się konflikt kolacjiKolacja, określana w systemach bazodanowych jako collation, jest zestawem reguł używanych do interpretowania i porównywania tekstu. Określa między innymi sposób sortowania znaków, ich kolejność oraz zasady rozróżniania wielkości liter i znaków diakrytycznych. Dla przykładu tekst zapisany w kolacji niewrażliwej na wielkość liter może traktować „Jan” i „jan” jako wartości równoważne, natomiast kolacja wrażliwa na wielkość liter może uznać je za różne. Konflikt występuje wtedy, gdy jedno wyrażenie tekstowe ma inne ustawienia kolacji niż drugie wyrażenie uczestniczące w operacji. Źródłem różnicy może być kolumna tabeli, stała tekstowa, parametr zapytania, zmienna, wyrażenie wyliczane albo wynik połączenia tabel. Problem ujawnia się najczęściej przy porównaniu wartości operatorem równości, filtrowaniu w klauzuli Jak działa jawne użycie COLLATERozwiązaniem jest wskazanie kolacji bezpośrednio przy wyrażeniu, którego sposób porównywania ma zostać wymuszony. Konstrukcja Nazwa kolacji musi odpowiadać konkretnemu silnikowi bazy danych i jego dostępnemu katalogowi kolacji. Nie należy zastępować jej przypadkową nazwą z innego systemu. W praktyce trzeba ustalić, jakie kolacje mają kolumna i baza, a następnie wybrać regułę zgodną z wymaganym zachowaniem: między innymi z językiem danych, sortowaniem, wrażliwością na wielkość liter oraz rozróżnianiem akcentów. Jawne Konsekwencje dla porównań, sortowania i indeksówUsunięcie komunikatu o konflikcie nie gwarantuje poprawności wyniku. Jeżeli zastosowana kolacja jest niewrażliwa na wielkość liter, rekordy różniące się wyłącznie zapisem liter mogą zostać potraktowane jako duplikaty podczas grupowania albo jako zgodne podczas łączenia tabel. Jeżeli reguły różnią się obsługą akcentów, wartości zawierające znaki diakrytyczne również mogą zostać uznane za równe lub różne zależnie od wybranej konfiguracji. Dlatego decyzja o kolacji powinna wynikać z wymagań danych, a nie tylko z chęci ukrycia błędu wykonania zapytania. Jawna konwersja kolacji może również zmienić sposób wykorzystania indeksu. Gdy kolumna zostaje objęta wyrażeniem lub przekształceniem, silnik może nie użyć istniejącego indeksu w taki sam sposób jak przy bezpośrednim porównaniu kolumny. Skutkiem może być plan wymagający odczytania większej liczby wierszy i wykonania dodatkowej pracy podczas filtrowania. Przy większych tabelach warto sprawdzić plan wykonania, czas zapytania oraz liczbę odczytów logicznych. Należy także zweryfikować, czy jedna reguła jest stosowana konsekwentnie w warstwie wyszukiwania, sortowania i zapisu danych. Trwała naprawa polega zwykle na uporządkowaniu schematu, a nie na dopisywaniu Sprawdzenie problemu na komputerze roboczymDiagnozę można rozpocząć od odtworzenia zapytania na reprezentatywnym zestawie danych i zapisania dokładnego komunikatu silnika. Następnie należy porównać definicje kolumn uczestniczących w operacji, typy parametrów oraz ustawienia sesji, w której zapytanie jest wykonywane. Szczególnej uwagi wymagają połączenia danych pochodzących z różnych baz, importy z plików tekstowych oraz tabele tymczasowe, ponieważ w tych miejscach ustawienia porównywania mogą zostać odziedziczone z innego kontekstu niż oczekiwany. Jeżeli problem pojawia się tylko na jednym laptopie lub komputerze PC, należy odróżnić błąd zapytania od problemu środowiskowego. Możliwe przyczyny to różna wersja programu klienckiego, odmienne ustawienia połączenia, uszkodzona konfiguracja narzędzia, niepełna aktualizacja albo błędne kodowanie pliku zawierającego zapytanie. Test powinien obejmować ten sam tekst zapytania, te same parametry i to samo źródło danych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów sprzętowych oraz środowiskowych, które utrudniają uruchamianie narzędzi bazodanowych. |