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ść.