Udostępnij za pośrednictwem


Bezpośrednie wykonanie

Bezpośrednie wykonać jest najbardziej podstawowe sposobem wykonywania instrukcja.Tworzy aplikację zawierającą ciąg znaków Transact-SQL Instrukcja i przesyła do wykonania przy użyciu SQLExecDirect funkcja.Po instrukcja dociera do serwera, SQL Server kompiluje go do planu wykonania, a następnie natychmiast uruchamia plan wykonania.

Bezpośrednie wykonanie jest powszechnie używany przez aplikacje, które można utworzyć i wykonać instrukcje przy uruchomieniu czas i jest najbardziej efektywne metoda dla instrukcji, które ma być wykonywana jednym czas.Jego zwrotu z wielu baz danych jest to, że instrukcja języka SQL musi przeanalizować i kompilowane przy każdym wykonaniu, które dodaje dodatkowe obciążenie, jeśli w instrukcji jest wykonywana wielokrotnie.

Po podłączeniu do wersji SQL Server wcześniej niż w wersji 7.0 należy używać bezpośrednio wykonywania:

  • Po instrukcja jest prawdopodobne, że można wykonać więcej niż cztery razy.

  • Aby wywoływać procedury przechowywanej.

SQL Server 2000 i później znacznie zwiększa wydajność bezpośrednie wykonanie instrukcji często wykonywane w środowisku wielu użytkowników i użyciem SQLExecDirect ze znacznikami parametrów w odniesieniu do powszechnie wykonane instrukcje SQL mogą zwracać efektywności wykonanie przygotowanego.

When connected to an instance of SQL Server, the SQL Server Native Client ODBC driver uses sp_executesql to transmit the SQL statement or batch specified on SQLExecDirect.SQL Server has logic to quickly determine if an SQL statement or batch executed with sp_executesql matches the statement or batch that generated an execution plan that already exists in memory.Jeżeli dokonano dopasowania SQL Server po prostu ponownie używa istniejącego planu, a nie kompilacji nowego planu. Oznacza to, które często wykonane instrukcje SQL wykonane z SQLExecDirect korzyści z wiele korzyści ponownego użycia planu, które były tylko dostępne procedur przechowywanych we wcześniejszych wersjach w systemie z wielu użytkownikówSQL Server.

Ponowne używanie wykonanie tego korzyści planów działa tylko, gdy kilku użytkowników jest wykonywanie tej samej instrukcja języka SQL lub partia.Należy wykonać następujące konwencje, aby zwiększyć prawdopodobieństwo, że instrukcje SQL, wykonane w różnych klientów są wystarczająco podobne, aby mieć możliwość ponownego użycia planów wykonania kodowania:

  • Czy nie zawiera danych stałych w instrukcjach SQL; zamiast tego użyć znaczników parametr powiązany zmiennych programu.Aby uzyskać więcej informacji zobacz Za pomocą deklaracji Parameters.

  • Za pomocą pełni kwalifikowanych nazw obiektów.Wykonanie planów nie są używane ponownie, jeśli nie są kwalifikowane nazwy obiektów.

  • Korzystać z połączeń aplikacji, jak to możliwe używanie wspólny zestaw opcji instrukcja i połączenia.Plany wykonanie generowane dla połączenia z jednym zestaw opcji (na przykład ANSI_NULLS) nie są używane ponownie o innego zestaw opcji połączenia.The SQL Server Native klient ODBC driver and the SQL Server Native klient OLE DB dostawca both have the same default settings for these options.

Jeśli wszystkie instrukcje wykonywane z SQLExecDirect są zakodowane przy użyciu tych konwencji, SQL Server ponownego użycia planów wykonania, gdy wystąpi szansy sprzedaży.