Udostępnij za pośrednictwem


Deferred Name Resolution and Compilation

Po utworzeniu procedura przechowywana instrukcji w procedurze są w sytuacji syntaktycznych dokładności.Jeśli w definicji procedury syntaktycznych błędów, zwracany jest błąd i nie zostanie utworzona procedura przechowywana.Jeśli instrukcje są poprawne syntaktycznie, tekst procedura przechowywana jest przechowywana w sys.sql_modules Służy do wyświetlania katalogu.

Po wykonaniu procedury przechowywanej w pierwszym czas, procesor kwerend odczytuje tekst z procedury przechowywanej z sys.sql_modules wykazu widoku i kontroli, które są nazwy obiektów, używane w procedurze obecne.Ten proces jest nazywane rozpoznawaniem nazw odłożone, ponieważ obiektów tabela odwołuje się procedura przechowywana nie muszą istnieć po utworzeniu procedury przechowywanej, ale tylko wtedy, gdy jest on wykonywany.

Uwaga

Rozpoznawanie nazw odroczonego można używać tylko w przypadku, gdy odwołanie do nieistniejącej tabela obiektów.Wszystkie obiekty muszą istnieć w czasie, tworzona jest procedura przechowywana.Na przykład, jeśli odwołujesz istniejącej tabela w procedura przechowywana nie można wyświetlić nieistniejącej kolumny dla tej tabela.

In the resolution stage, Microsoft SQL Server also performs other validation activities (for example, checking the compatibility of a column data type with variables).Jeśli brakuje obiektów, odwołuje się procedura przechowywana, po wykonaniu procedury przechowywanej, procedura przechowywana zatrzymuje wykonywany, kiedy uzyskuje się on do instrukcja, która odwołuje się do brakującego obiektu.W takim wypadku lub jeśli inne błędy znajdują się w fazie rozdzielczość, zwracany jest błąd.

Uwaga

Jeśli obiekt odwołuje się procedura przechowywana jest usunięty lub zmieniono jego nazwę, a następnie zwracany jest błąd, gdy procedura przechowywana jest wykonywane.Niemniej jednak jeśli obiekt, do którego odwołuje się procedura przechowywana jest zastępowany obiekt o takiej samej nazwie, procedura przechowywana wykonuje bez konieczności być ponownie utworzony.Na przykład, jeśli procedura przechowywana Proc1 odwołania do tabela Test1, and Test1 jest usuwana, a inną tabela o nazwie Test1 tworzenia Proc1 odwołuje się do nowej tabela.Procedura przechowywana ma być odtworzone.

If procedure execution successfully passes the resolution stage, the Microsoft SQL Server query optimizer analyzes the Transact-SQL statements in the stored procedure and creates an execution plan.Plan wykonania opisano najszybszą metodą wykonywanie procedura przechowywana, na podstawie informacji takich jak:

  • Ilość danych w tabelach.

  • Rodzaj i obecność indeksy dla tabel i rozmieszczenia danych w indeksowanych kolumnach.

  • Operatory porównania oraz wartości porównawcze stosowane w warunki klauzula WHERE.

  • Obecność sprzężenia i słowa kluczowe UNION, GROUP BY i ORDER BY.

Po optymalizacji kwerendy ma analizy tych czynników, w procedurze przechowywanej, umieszcza plan wykonania w pamięci.Proces analizowania procedura przechowywana i tworzenia planu wykonania nosi nazwę kompilacji.Plan wykonać optymalizacji w pamięci jest używany do wykonywania kwerendy.Plan wykonania pozostaje w pamięci aż do SQL Server ponownego uruchomienia lub dopóki nie będzie potrzebne miejsce do magazynowania innego obiektu.

Gdy procedura przechowywana następnie zostanie wykonany, SQL Server ponownie używa istniejących planów wykonywania, jeśli jest on nadal w pamięci. Plan wykonania nie jest już w pamięci, tworzony jest nowy plan wykonania.