Udostępnij za pośrednictwem


Bezpośrednie wykonanie

Bezpośrednie wykonać jest najprostszym sposobem wykonywania instrukcja.Tworzy aplikację zawierającą ciąg znaków Transact-SQL instrukcja i przesyła do wykonanie SQLExecDirect funkcja.Po instrukcja z serwerem SQL Server skompiluje go do planu wykonania, a następnie natychmiast uruchamia wykonanie planu.

Bezpośrednie wykonanie jest powszechnie używany przez aplikacje budowania i wykonać instrukcje przy uruchomieniu czas i jest najbardziej efektywne metody dla instrukcji, które będą wykonywane pojedynczego czas.Zwrot z wielu baz danych jest, że instrukcja języka SQL musi przeanalizować i skompilowany każdego czas wykonania, dodaje narzutów Jeśli instrukcja jest wykonywane wielu czass.

Po podłączeniu do wersji SQL Server wcześniejszej niż 7.0, bezpośrednie wykonanie powinny być używane:

  • Gdy instrukcja może być wykonywane mniej niż cztery razy.

  • Do wywoływania procedur przechowywanych.

SQL Server 2000 i dalej znacząco zwiększa wydajność bezpośrednie wykonanie instrukcji często wykonywane w wielu użytkowników środowisk i przy użyciu SQLExecDirect parametru dla najczęściej wykonane instrukcje SQL można podejścia efektywności przygotowane wykonanie.

Po podłączeniu do wystąpienie SQL Server, SQL Server używa sterownika ODBC macierzystym klienta sp_executesql do przesyłania instrukcja języka SQL lub partia określona w SQLExecDirect.SQL Serverzawiera logikę szybko ustalić, czy instrukcja języka SQL lub partia wykonane z sp_executesql pasuje do instrukcji lub partia , wygenerowany plan wykonania, która już istnieje w pamięci.Jeśli nastąpi dopasowanie SQL Server po prostu ponownie używa planu istniejącego zamiast kompilować nowy plan.Oznacza to, że często wykonywane instrukcji SQL wykonane z SQLExecDirect w systemie z wielu użytkowników będą korzystać z wielu zalet ponownego użycia planu, które były tylko dostępne procedur przechowywanych w starszych wersjach SQL Server.

Zaletą ponownego wykorzystania wykonanie planów działa tylko, gdy kilku użytkowników są wykonywane w tej samej instrukcja języka SQL lub partia.Wykonaj te kodowania konwencje, aby zwiększyć prawdopodobieństwo, że instrukcje SQL wykonane przez różnych klientów są wystarczająco podobne do ponownego użycia planów wykonanie:

  • Nie zawierają danych stałych w instrukcjach SQL; Zamiast tego użyj znaczników parametr powiązany program zmiennych.Aby uzyskać więcej informacji, zobacz Za pomocą instrukcji parametrów.

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

  • Mieć połączeń aplikacji jako wykorzystanie wspólny zestaw opcji instrukcja i połączenia.Wykonanie planów generowane dla połączenia z jednym zestawem opcji (takich jak ANSI_NULLS) nie są używane do połączenia, mających inny zestaw opcji. SQL Server Sterownik ODBC macierzystym klienta i SQL Server macierzystego klienta dostawca OLE DB zarówno mają te same domyślne ustawienia tych opcji.

Jeśli wszystkie instrukcje wykonywane z SQLExecDirect są zakodowane przy użyciu tych konwencji, SQL Server wielokrotnie wykonanie planów, gdy wystąpi możliwość.