Behavior Changes to Database Engine Features in SQL Server 2008

W tym temacie opisano zmiany zachowania Database Engine. Zachowanie zmiany dotyczą sposobu pracy funkcji lub interakcji w SQL Server 2008 w porównaniu z wcześniejszą wersją SQL Server.

Opcje pamięci podręcznej kontrola dostępu

W SQL Server 2005, access check result cache struktury wewnętrznej nie można skonfigurować z wyjątkiem za pomocą flagi śledzenia. W SQL Server 2008, można użyć access check cache opcji tej struktury. Aby uzyskać więcej informacji zobaczaccess check cache Options.

Wyszukiwanie pełnego tekstu

SQL Server 2008 wprowadzenie nowej architektury przeszukiwanie pełnego tekstu.Aparat przeszukiwanie pełnego tekstu teraz jest w pełni zintegrowany w SQL Server Database Engine, a nie oddzielnych usługa. Integracja zapewnia lepsze możliwości zarządzania przeszukiwanie pełnego tekstu, skalowalność, bezpieczeństwo i wydajność niż w poprzednich wersjach SQL Server. Aby uzyskać więcej informacji na temat główne różnice między przeszukiwania całego tekstu w SQL Server 2005 i SQL Server 2008również jako najlepsze praktyki związane z tej nowej zintegrowanego Full-Text aparat wyszukiwania, zobacz artykuł techniczny, "Program SQL Server 2008 wyszukiwanie: Wewnętrzne i ulepszenia"w witrynie MSDN.

Serwery połączone

SQL Server 2008 Zmienia semantyka transakcji instrukcji INSERT... wykonać, które są wykonać przed sprzężenia zwrotnego serwer połączony.W SQL Server 2005, w tym scenariuszu nie jest obsługiwana i powoduje błąd. W SQL Server 2008, instrukcję SQL INSERT... wykonać mogą być wykonać przed sprzężenia zwrotnego serwer połączony, wówczas, gdy połączenie nie ma wiele zestawów wyników aktywne (MARS) włączony. Gdy Usługa MARS jest włączona dla połączenia, zachowanie jest takie same, jak w SQL Server 2005.

Proste

Przetwarzanie kwerendy tabela partycjonowana i proste

W SQL Server 2008, ulepszenia w projekcie tabela partycjonowana ułatwiają lepsze proste podczas przetwarzania przez tabele podzielonym na partycje, niż w kwerendy SQL Server 2005. Jak ubocznym to zmianom może być collocated tylko dwukierunkowe sprzężenia.Plany kwerend dla dwukierunkowe collocated sprzężeń w SQL Server 2008 wyglądają tak samo jak w SQL Server 2005 i porównywalne z wydajnością SQL Server 2005. Jeśli w sprzężeniu znajdują się dodatkowe tabele z wyrównanymi partycjonowanie, inny plan zostanie zaznaczone, na przykład dwukierunkowe łączyć collocated następuje łączyć mieszania z trzecią tabelą.Collocated sprzężenia między więcej niż dwie tabele są niezwykłe i collocated sprzężenia nie korzystają z ulepszeń proste w SQL Server 2008. Niemniej jednak jeśli masz kwerendy, dla którego SQL Server 2005 wykonuje trzy-(lub więcej) sposób collocated łączyć jest możliwe, że kwerenda może działać wolniej SQL Server 2008 Jeśli ilość pamięci jest mała względem rozmiaru tabeli. Sposoby poprawienia wydajności w takiej sytuacji należą: zwiększenie ilości pamięci, która jest dostępna i re-writing kwerendy, tak aby poszczególnych partycji są sprzężone oddzielnie przed łączenie wyniki.Aby uzyskać dodatkowe informacje na temat sprzężeń collocated zobacz Kwerendy przetwarzania rozszerzenia na podzielonym na partycje, tabele oraz indeksy.

Gwiazda łączyć i proste

SQL Server ma nową optymalizację dla przetwarzania kwerend za pomocą sprzężeń gwiazdy, korzystającego z sprzężenia mieszania i filtry mapy bitowej.Kiedy kwerenda przetwarza dużych ilości danych z sprzężenia tabel fakt do tabel wymiarów w schemacie gwiazdy, za pomocą optymalizacji nowy plan kwerend można wykonywać dużo szybciej.

W ten sposób może być wyświetlony nowy plan kwerend dla istniejącej kwerendy, jeśli mieściły gwiazdy łączyć wzorca.optymalizator kwerendy wybiera ten plan, podczas jego oszacowań wskazują zwiększy wydajność kwerendy.Jednak w przypadku niedokładne statystyczne wykorzystywane w szacowaniu kosztów optymalizator kwerendy może wybrać gwiazdy łączyć optymalizacji, gdy inny plan będzie szybsze.

Jeśli maksymalny stopień proste konfiguracja opcji lub opcji indeksowania MAXDOP jest ustawiona na wartość 1, optymalizator kwerendy nie będzie używać optymalizacji połączenie typu gwiazda i nie będzie występować świadczeń nowych optymalizacji połączenie typu gwiazda.Jeśli system wykonanie kwerendy wywoła kwerendy zoptymalizowany z planem równolegle z tylko jeden wątek, niektóre filtry mapy bitowej można usunąć z planu gwiazdy łączyć wiele map bitowych filtru.Zmiana ta może spowolnić wykonywanie więcej niż oczekuję, gdy użytkownik przechodzi z 2 wątek do wątek 1, na przykład.

Gwiazda łączyć optymalizacji jest dostępna tylko w wersji Enterprise Developer i Evaluation z SQL Server. Aby uzyskać więcej informacji na temat filtrowania map bitowych zobacz Optimizing Data Warehouse Query Performance Through Bitmap Filtering. Aby uzyskać więcej informacji dotyczących sposobu interpretowania planów kwerendy zawierające filtry map bitowych zobacz Interpreting Execution Plans Containing Bitmap Filters. Aby uzyskać więcej informacji dotyczących optymalizacji połączenie typu gwiazda zobacz artykuł Magazyn TechNet "Wydajność kwerend Magazyn danych".

Kilka zewnętrzny proste wiersze

SQL Server 2008 Umożliwia proste dla sprzężeń nested loop, po zewnętrznej stronie łączyć zawiera tylko kilka wierszy.W SQL Server 2005, jeśli dostępnych jest wiele wątków, każdy wątek jest przydzielany strona wierszy z boku zewnętrzne łączyć. Jeśli istnieje tylko kilka wierszy, są one prawdopodobnie na tej samej stronie.In such cases, only one thread is employed and the potential benefits of parallelism are lost.SQL Server 2008 recognizes such cases and introduces an exchange operator that allocates one row per thread so that all available CPUs are employed.Oznacza proste zwiększone zużycie PROCESORA będzie tymczasowo zwiększyć w porównaniu z SQL Server 2005, ale wykonywanie kwerendy będzie szybsze. To nowe zachowanie pojawia się tylko wtedy, jeśli liczba wierszy zewnętrznego jest niewielka i koszt kwerendy szacuje się wystarczająco duża, aby korzystać z dodatkowych proste.Jeśli koszt kwerendy oszacowano na małe lub jeśli szacowana relacja po zewnętrznej stronie jest większa niż 1000, SQL Server przyzna jedną strona na wątek w SQL Server 2005. For more information about exchange operators and parallel query processing.see Równoległego przetwarzania kwerendy.

Kwerendy tabela partycjonowana, które używać wskazówki dotyczącej USE PLAN

SQL Server 2008 Zmienia sposób, w jaki przetwarzane są kwerendy na podzielonym na partycje tabel i indeksów.Kwerendy dotyczące obiektów podzielonym na partycje, które używać wskazówki dotyczącej USE PLAN może zawierać planu, który jest nieprawidłowy.Firma Microsoft zaleca następujące procedury, aby po uaktualnieniu systemu do SQL Server 2008.

Kiedy wskazówka USE PLAN jest określony bezpośrednio w kwerendzie:

  1. Usuń USE PLAN wskazówkę dotyczącą kwerendy.

  2. Test kwerendy.

  3. Jeśli Optymalizator nie wybiera odpowiedni plan, dostrajanie kwerendy, a następnie określ wskazówkę dotyczącą USE PLAN z planem żądaną kwerendę.

Kiedy wskazówka USE PLAN określono plan wykonania kwerendy:

  1. Aby sprawdzić poprawność plan wykonania kwerendy, należy użyć funkcja sys.fn_validate_plan_guide.Alternatywnie można sprawdzić, czy plany nieprawidłowy za pomocą plan wykonania kwerendy przegranych przewodnik zdarzenie w SQL Server Profiler.

  2. Jeżeli plan wykonania kwerendy jest nieprawidłowa, usuwanie plan wykonania kwerendy.Jeśli Optymalizator nie wybiera odpowiedni plan, dostrajanie kwerendy, a następnie określ wskazówkę dotyczącą USE PLAN z planem żądaną kwerendę.

Aby uzyskać więcej informacji na temat przetwarzania obiektów podzielonym na partycje kwerendy Zobacz Kwerendy przetwarzania rozszerzenia na podzielonym na partycje, tabele oraz indeksy.

Zaplanowanie prowadnice

W SQL Server 2008, jeśli plan wykonania kwerendy nie może być wdrożona, kompiluje kwerendy za pomocą innego plan wykonania kwerendy i zwracany jest błąd nie. W SQL Server 2005, powstaje błąd i kończy się niepowodzeniem.

Linie pomocnicze utworzone w planowania SQL Server 2005 może być nieprawidłowy po uaktualnieniu systemu do SQL Server 2008. Nieprawidłowy plan wykonania kwerendy prowadnic, nie spowoduje aplikacji nie powiedzie się, ale plan wykonania kwerendy nie będą używane.Firma Microsoft zaleca re-evaluating i testowanie plan wykonania kwerendy definicje Przewodnik po uaktualnieniu aplikacji do nowej wersji programu SQL Server. Wymagania dotyczące dostosowywania działania i zachowanie odpowiedniego plan wykonania kwerendy przewodnik mogą ulec zmianie.Po uaktualnieniu bazy danych SQL Server 2008, należy wykonać następujące zadania, aby sprawdzić poprawność istniejących prowadnic planu przy użyciu sys.fn_validate_plan_guide funkcja.Alternatywnie można monitorować dla plan wykonania kwerendy nieprawidłowy linii za pomocą przewodnika plan nie powiodła się zdarzenie w programie SQL Server Profiler.

Architektura procesora kwerendy

SQL Server 2008 Zmienia sposób, w jaki przetwarzane są kwerendy na podzielonym na partycje tabel i indeksów.Kwerendy na podzielonym na partycje obiekty wskazówka USE PLAN dla planu generowane przez SQL Server 2005 może zawierać planu, który jest nieprawidłowy. Aby uzyskać więcej informacji zobaczConsiderations for Upgrading the Database Engine.Aby uzyskać więcej informacji na temat przetwarzania obiektów podzielonym na partycje kwerendy Zobacz Kwerendy przetwarzania rozszerzenia na podzielonym na partycje, tabele oraz indeksy.

Funkcja REPLACE

W SQL Server 2005, określonego w pierwszym parametrze wejściowym do funkcja REPLACE spacji końcowych są obcięte, gdy parametr jest typu char. Na przykład w instrukcja SELECT '<' + REPLACE(CONVERT(char(6), 'ABC '), ' ', 'L') + '>', wartość 'ABC "niepoprawnie jest oceniany jako „ABC".

W SQL Server 2008, spacji końcowych są zawsze zachowywane. W przypadku aplikacji korzystających z poprzednich zachowaniem funkcja należy użyć funkcja RTRIM przy określaniu pierwszy parametr wejściowy dla funkcja.Na przykład, następująca składnia będzie odtworzyć SQL Server 2005 zachowanie SELECT '<' + REPLACE(RTRIM(CONVERT(char(6), 'ABC ')), ' ', 'L') + '>'.

bazy danych systemu

Baza danych zasób

W SQL Server 2005, plików danych i dziennika dla bazy danych zasób zależą od lokalizacji pliku danych z wzorzec bazy danych. W związku z tym przenoszenie wzorzec bazy danych wymaga także przenoszenie bazy danych zasób w tej samej lokalizacji.W SQL Server 2008, ta zależność nie istnieje. Pliki wzorzec bazy danych można przenosić bez przenoszenia zasób bazy danych.

W SQL Server 2008, jest domyślna lokalizacja bazy danych zasób <dysk>: \Program Files\Microsoft SQL Server\MSSQL10. <instance_name>\Binn\. Nie można przenieść bazy danych zasób.

Baza danych tempdb

We wcześniejszych wersjach SQL Server, opcja PAGE_VERIFY bazy danych jest zestaw / / / none dla tempdb bazy danych i nie mogą być modyfikowane. W SQL Server 2008, wartością domyślną dla bazy danych tempdb jest funkcja suma kontrolna dla nowych instalacji SQL Server. W przypadku uaktualniania instalacji SQL Server, wartością domyślną jest brak. Opcja może być modyfikowany.Zaleca się stosowanie Funkcja suma kontrolna w bazie danych tempdb.

Minimalna rejestrowanie przy użyciu INSERT…SELECT ładowanie zbiorcze danych

We wcześniejszych wersjach SQL Server, zbiorczego ładowania wierszy do tabela miejsce docelowe przy użyciu instrukcja INSERT INTO <target_table> WYBIERZ OPCJĘ <kolumny> Z <source_table> zawsze jest całkowicie zarejestrowane operacji. W SQL Server 2008, można wykonać tej operacji, korzystając z minimalnym rejestrowania w momencie, gdy w tabela miejsce docelowe jest sterty, modelu odzyskiwanie bazy danych jest ustawiony, proste lub zarejestrowane zbiorczej i wskazówki TABLOCK określono w tabela miejsce docelowe. Rejestrowanie minimalny może zwiększyć wydajność instrukcja i zmniejszyć ryzyko tego operacja wypełniania miejsca dziennik transakcji dostępny podczas transakcji.Aby uzyskać więcej informacji zobaczINSERT (Transact-SQL).

XML

Uaktualnienie XML określonego oprogramowania SQL Server 2005 do programu SQL Server 2008

SQL Server 2008 zawiera obsługę schematu XML, w tym obsługę kilku rozszerzeń lax Sprawdzanie poprawności, udoskonalona obsługa xs: data, xs:czas and xs:dataTime wystąpienie danych i dodano obsługę list i union typy. W większości przypadków zmiany nie mają wpływu na uaktualnienia komputera.Niemniej jednak jeśli używasz kolekcja schematu XML w SQL Server 2005 wartości typu, która umożliwia xs: data, xs:czas, or xs:dataTime (lub dowolnego podtypu), wykonywane są następujące kroki uaktualniania podczas uaktualniania sieci SQL Server 2005 bazy danych SQL Server 2008.

  1. Dla każdego xml kolumna, wpisany z kolekcja schematu XML, zawierające elementy lub atrybuty, które są wpisane jako xs:anyType, xs:anySimpleType, xs: data lub któregokolwiek z jej podtypów, xs:czas lub któregokolwiek z jej podtypów lub xs:dataTime i wszystkich jego podtypów lub union lub list występuje, zawierające dowolny z tych typów następujących typów:

    1. Wszystkie indeksy XML na podstawie kolumna są wyłączone.

    2. Wszystkie SQL Server 2005 wartości nadal jest reprezentowana w strefie czasowej Z, ponieważ mają one już znormalizowane do stref czasowych Z.

    3. Wszystkie xs: data or xs:dataTime wartości, które są mniejsze niż 1 stycznia rok 1 doprowadzi do błąd wykonania podczas indeksu jest przebudowany lub instrukcji XQuery lub XML DML są wykonywane przed xml Typ danych zawierający tę wartość.

  2. Wszystkie lata ujemne xs or xs:dateTime aspekty lub wartości domyślne w zbiorze schematu XML są automatycznie aktualizowane w taki sposób, aby najmniejszą wartość dozwolona przez podstawowy xs or xs:dateTime typu.Na przykład 0001 - 01 - 01T00:00:00.0000000Z dla xs:dateTime.

Należy pamiętać, że prostej instrukcja select SQL można nadal używać do pobierania całego xml Typ danych, nawet jeśli zawiera ona lat ujemna. Zaleca się zastąpienie ujemne lat w roku w zakresie nowo obsługiwanych lub zmiana typu element lub atrybut xs:ciąg.Aby uzyskać więcej informacji zobaczTyped XML Compared to Untyped XML.

Sprawdzanie poprawności łagodnymi i xs:anyType elementy

In SQL Server 2005lax validation is not supported and strict validation is applied for elements of the type anyType.W SQL Server 2008, zawartość elementów tego typu anyType do sprawdzania poprawności przy użyciu lax Sprawdzanie poprawności. Aby uzyskać więcej informacji zobaczWildcard Components and Content Validation.

Historia zmian

Microsoft Learning

Dodać sekcje, "Sprawdź, czy pamięć podręczna opcje programu Access", "Wyszukiwanie", "Proste" i "" XML".

Dodane w sekcji „ Używanie INSERT… SELECT dane obciążenia zbiorcze z rejestrowania minimalne".