Przygotowywanie poleceń
SQL Server Macierzystego klienta OLE DB dostawca obsługuje polecenia przygotowania zoptymalizowane wielu wykonanie jednego polecenia; Jednakże przygotowania polecenie generuje obciążenie i konsument nie trzeba przygotować polecenia wykonać więcej niż raz.Generalnie polecenia powinny być przygotowane, jeśli zostanie uruchomiony więcej niż trzy razy.
Ze względu na wydajność przygotowania polecenia jest odroczone do momentu polecenie jest wykonywane.Jest to zachowanie domyślne.Wszelkie błędy w poleceniu przygotowywany nie są znane, dopóki polecenie jest wykonywane lub operacji metaproperty.Ustawienie SQL Server SSPROP_DEFERPREPARE na FALSE właściwość można wyłączyć to zachowanie domyślne.
W SQL Server, kiedy polecenie jest wykonywane bezpośrednio (bez przygotowywanie go najpierw), utworzony plan wykonania i buforowane.Jeżeli instrukcja języka SQL jest wykonywana ponownie, SQL Server ma skuteczny algorytm do nowego sprawozdania z istniejących planów wykonywania w pamięci podręcznej i ponownie używa planu wykonania tej instrukcji.
Dla przygotowanych poleceń SQL Server zapewnia macierzystą obsługę przygotowywanie i wykonywanie polecenia instrukcji.Podczas przygotowywania instrukcja, SQL Server tworzy plan wykonania, buforuje i zwraca uchwyt, aby plan wykonania tego dostawca.Dostawca, a następnie używa tego dojścia do wykonać instrukcja wielokrotnie.Nie procedury przechowywane zostały utworzone.Ponieważ dojście identyfikuje bezpośrednio planu wykonać instrukcja języka SQL zamiast pasujących instrukcję, aby plan wykonać w pamięci podręcznej (jak przypadek bezpośredniego wykonywania), jest bardziej efektywne, do przygotowania instrukcji niż bezpośrednio wykonać go, jeśli wiadomo, że deklaracja będzie wykonać więcej niż kilka razy.
W SQL Server 2005, SQL Server 2000, i SQL Server 7.0, przygotowanych instrukcji nie można używać do tworzenia obiektów tymczasowy i nie może odwoływać się procedury składowane w systemie , utworzyć tymczasową obiekty, takie jak tabele tymczasowe.Procedury te muszą być wykonane bezpośrednio.
Niektóre polecenia nigdy nie powinna być przygotowana.Na przykład polecenia określ wykonanie procedura składowana lub zawierają nieprawidłowy tekst dla SQL Server Tworzenie procedura składowana nie powinien być przygotowany.
Jeśli procedura składowana tymczasowo jest tworzony, SQL Server wykonuje macierzystym klienta dostawca OLE DB procedura składowana tymczasowo, zwracania wyniki, jakby wykonano instrukcję, sam.
Tymczasowe procedura składowana tworzenie jest kontrolowana przez SQL Server macierzystego klienta dostawca OLE DB-inicjowanie szczególne właściwość SSPROP_INIT_USEPROCFORPREP.Jeśli wartość właściwość jest SSPROPVAL_USEPROCFORPREP_ON lub SSPROPVAL_USEPROCFORPREP_ON_DROP, SQL Server próbuje utworzyć procedura składowana, po przygotowaniu polecenia macierzystym klienta dostawca OLE DB.Tworzenie procedury przechowywanej powiedzie się, jeśli aplikacja ma wystarczające SQL Server uprawnień.
Dla konsumentów, które rzadko odłączyć tworzenia tymczasowych procedur przechowywanych może wymagać znaczących zasobów tempdb, SQL Server systemowej bazy danych, w którym są tworzone obiekty tymczasowe.Wartość SSPROP_INIT_USEPROCFORPREP jest na SSPROPVAL_USEPROCFORPREP_, tymczasowo przechowywane procedury utworzone przez SQL Server macierzystego klienta dostawca OLE DB są usuwane, tylko w przypadku, gdy sesja, które utworzone polecenie straci połączenie z wystąpienie SQL Server.Jeśli połączenie to jest domyślne połączenie utworzone podczas inicjowania źródła danych, procedura składowana tymczasowo jest przenoszony tylko wtedy, gdy źródło danych staje się niezainicjowany.
Gdy wartość SSPROP_INIT_USEPROCFORPREP jest SSPROPVAL_USEPROCFORPREP_ON_DROP, SQL Server macierzystego klienta OLE DB dostawca tymczasowe procedury przechowywane są usuwane, gdy występuje jedna z następujących:
Używa konsumenta ICommandText::SetCommandText , wskazując polecenie Nowy.
Używa konsumenta ICommandPrepare::Unprepare oznacza, że nie potrzebuje już dłużej tekst polecenia.
Wszystkie odniesienia do za pomocą obiektu polecenie zwalnia konsumenta procedura składowana tymczasowo.
Obiekt polecenia ma co najwyżej jedną procedura składowana tymczasowo w tempdb.Wszelkie istniejące procedura składowana tymczasowo reprezentuje bieżący tekst polecenia obiektu określonego polecenia.