| Termin | Definicja |
|---|---|
| SQL Server 2008 Compatibility | Poziom zgodności SQL Server 2008 zachowuje zachowanie optymalizatora z tej wersji przy pracy na nowszym silniku. Poziom zgodności 100 w SQL ServerSQL Server 2008 Compatibility oznacza poziom zgodności bazy danych ustawiony na wartość 100, odpowiadającą zachowaniu wersji SQL Server 2008. Jest to właściwość konkretnej bazy danych, a nie całej instancji. Nowszy silnik SQL Server może uruchamiać bazę utworzoną w starszej wersji i zachowywać część wcześniejszych reguł interpretacji zapytań, aby ograniczyć ryzyko zmiany wyników lub wydajności po migracji. Poziom zgodności nie oznacza uruchomienia pełnego silnika SQL Server 2008 wewnątrz nowszej wersji. Baza nadal korzysta z aktualnego silnika, jego mechanizmów przechowywania, zabezpieczeń i dostępnych zasobów. Ustawienie 100 wpływa przede wszystkim na sposób kompilowania zapytań, wybór planów wykonania oraz wybrane zachowania języka Transact-SQL. Nie jest to także kopia zapasowa ani format pliku, który przywraca starszy system bazodanowy. Wpływ poziomu 100 na optymalizator zapytańNajważniejszym zastosowaniem tego poziomu jest zachowanie wcześniejszej wersji modelu optymalizacji zapytań podczas pracy bazy na nowszym silniku. Optymalizator analizuje instrukcję SQL i wybiera plan wykonania, na przykład sposób łączenia tabel, użycie indeksu, kolejność operacji oraz metodę agregacji. Po zmianie silnika ten sam tekst zapytania może otrzymać inny plan, ponieważ nowsze wersje zawierają zmienione reguły estymacji i wyboru operatorów. Poziom zgodności 100 ogranicza część takich zmian wynikających z nowszego modelu. Nie gwarantuje to jednak identycznego czasu wykonania ani identycznego planu w każdych warunkach. Na wynik wpływają również statystyki, dane, indeksy, konfiguracja instancji, pamięć, obciążenie oraz poprawki zastosowane do silnika. Poziom zgodności nie naprawia nieoptymalnego zapytania, brakującego indeksu ani błędnych założeń aplikacji. Służy jako mechanizm przejściowy, który pozwala oddzielić migrację silnika od kontrolowanego wdrażania zmian w optymalizacji. Sprawdzanie i zmiana ustawienia bazyAktualny poziom zgodności można sprawdzić w widoku katalogowym
Wartość 100 wskazuje zgodność z SQL Server 2008. Zmianę wykonuje się poleceniem Migracja z SQL Server 2008 i kontrola skutkówPodczas migracji bazy z SQL Server 2008 na nowszy silnik poziom 100 może pomóc utrzymać przewidywalne zachowanie istniejących zapytań. Nie powinien jednak zastępować testów. Należy porównać wyniki zapytań, czasy wykonania i plany dla operacji najbardziej obciążających system, zwłaszcza złożonych połączeń, zapytań z sortowaniem, agregacji oraz procedur składowanych. Warto również sprawdzić komunikaty błędów i ostrzeżenia generowane przez aplikację po przełączeniu na nową instancję. Jeżeli testy potwierdzą poprawność działania, można zaplanować podniesienie poziomu zgodności do wartości właściwej dla używanej wersji SQL Server. Takie przejście może udostępnić nowszy model optymalizatora, ale może też zmienić plany wykonania niektórych zapytań. Z tego powodu zmiana powinna być poprzedzona kopią zapasową, testem na reprezentatywnych danych i możliwością powrotu do poprzedniego ustawienia. W przypadku problemu diagnostyka powinna obejmować zarówno samą instrukcję SQL, jak i statystyki, indeksy, konfigurację bazy oraz różnice między środowiskiem źródłowym i docelowym. |