| Termin | Definicja |
|---|---|
| Porównywanie tekstu | Porównywanie tekstu w SQL zależy od kolacji, która decyduje o rozróżnianiu wielkości liter i znaków diakrytycznych. Na czym polega porównywanie tekstu w SQLPorównywanie tekstu w SQL służy między innymi do sprawdzania równości wartości, wyszukiwania fragmentów za pomocą operatora Przykładowo, w jednej konfiguracji teksty „Krakow” i „krakow” mogą zostać uznane za równe, a w innej za różne. Podobnie „lodz” i „łódź” mogą być traktowane jako identyczne podczas wyszukiwania albo jako dwa odmienne ciągi. Nie jest to cecha samego operatora równości, lecz rezultat reguł przypisanych do kolumny, wyrażenia lub całego środowiska bazy danych. Dlatego zapytanie zwracające nieoczekiwane rekordy wymaga sprawdzenia nie tylko warunku SQL, ale również kolacji użytej przy porównaniu. Wielkość liter, akcenty i znaki UnicodeKolacje mogą rozróżniać wielkość liter albo ją ignorować. W kolacji rozróżniającej wielkość liter wartości „Admin” i „admin” są różne, natomiast w kolacji niewrażliwej na wielkość liter mogą zostać uznane za równoważne. Analogiczna zasada dotyczy wrażliwości na akcenty i inne znaki diakrytyczne. W języku polskim ma to znaczenie dla liter takich jak ą, ć, ę, ł, ń, ó, ś, ź oraz ż, ale dokładne zachowanie zależy od wybranej kolacji i silnika bazy danych. Warto odróżnić porównywanie tekstu od porównywania jego reprezentacji binarnej. Porównanie binarne analizuje wartości znak po znaku według ich kodów lub reprezentacji bajtowej. Może więc rozróżniać ciągi, które dla użytkownika wyglądają podobnie, lecz są zapisane w inny sposób. Dotyczy to między innymi tekstu Unicode oraz znaków złożonych z kilku elementów. W praktyce poprawny wybór kolacji powinien odpowiadać językowi danych i wymaganiom wyszukiwania, ponieważ przypadkowa zmiana reguł może zmienić wyniki zapytań. Kolacja a wyszukiwanie, sortowanie i indeksyReguły porównywania wpływają na operator Kolacja ma także znaczenie dla wydajności. Indeks tekstowy jest budowany z uwzględnieniem określonych zasad porównywania, dlatego warunek zgodny z kolacją kolumny może korzystać z indeksu efektywniej niż wyrażenie wymuszające inną regułę. Jawna konwersja kolacji, funkcje zmieniające tekst lub operacje wykonywane na kolumnie mogą utrudnić optymalizatorowi użycie istniejącego indeksu. Przed zmianą kolacji należy więc sprawdzić nie tylko wyniki zapytań, lecz także ograniczenia unikalności, indeksy, sortowanie i warunki łączenia tabel. Dwie wartości uznane wcześniej za różne mogą po zmianie stać się równoważne, co może prowadzić do konfliktu w indeksie unikalnym. Kontrola porównań tekstowych w komputerzeNieprawidłowe wyniki porównywania tekstu mogą wynikać z niespójnych ustawień między bazą danych, aplikacją i importowanymi plikami. Podczas diagnostyki sprawdza się typ kolumny, przypisaną kolację, sposób zapisu znaków oraz faktyczną treść wartości. Pomocne jest wykonanie kilku testów obejmujących różnice wielkości liter, polskie znaki, spacje na początku lub końcu, znaki niewidoczne i tekst pochodzący z różnych źródeł. Trzeba również ustalić, czy problem występuje przy równości, wyszukiwaniu częściowym, sortowaniu, czy dopiero podczas łączenia danych. W aplikacji warto przyjąć jedną, jasno opisaną zasadę porównywania dla każdego pola. Inaczej mogą być traktowane dane przeznaczone do logowania, inaczej nazwy prezentowane użytkownikowi, a jeszcze inaczej identyfikatory techniczne, które powinny być porównywane dokładnie. Nie należy usuwać znaków diakrytycznych ani zmieniać wielkości liter bez określenia, jaki problem rozwiązuje taka operacja. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC oraz ich podzespołów, w tym diagnostykę problemów z oprogramowaniem, bazami danych używanymi lokalnie i nieprawidłowym działaniem aplikacji. |