Jaka jest różnica między wsadem SQL, instrukcją T-SQL a zdalnym wywołaniem procedury?
Jak mogę sprawdzić, czy część kodu T-SQL jest partią czy instrukcją?
źródło
Jaka jest różnica między wsadem SQL, instrukcją T-SQL a zdalnym wywołaniem procedury?
Jak mogę sprawdzić, czy część kodu T-SQL jest partią czy instrukcją?
Cóż, przypuszczam, że mówisz głównie o klasach Profiler, ale wyjaśnienie i tak jest ważne.
Partia SQL to zestaw jednej lub więcej instrukcji zgrupowanych razem i oddzielonych instrukcją GO. EG: więcej instrukcji SELECT i INSERT tworzy partię, jeśli na końcu ma GO.
Wywołanie RPC to połączenie przychodzące z aplikacji klienckiej do bazy danych. EG: usługa Windows, aplikacja internetowa, aplikacja Windows, cokolwiek wymaga połączenia z bazą danych, faktycznie wykonuje wywołanie RPC.
Teraz w Profiler zobaczysz wszystko, co dotyka serwera bazy danych. Partia z Management Studio, wywołanie RPC (które jest albo pakietem lub wywołaniem procedury składowanej) z zewnętrznej aplikacji, wykonanie procedury z Management Studio.
Każda z nich składa się z instrukcji TSQL, więc ta klasa Profiler jest przydatna na wypadek, gdybyś chciał rozszerzyć wykonanie, aby zobaczyć, co faktycznie zostało wykonane. Co wstawia, wybiera ... itd.
Najłatwiejszym sposobem na obejrzenie ich w Profiler jest włączenie tylko End End RPC lub End batch call, a zobaczysz tam wszystkie potrzebne statystyki (czas trwania, IO, procesor). Następnie przejdź dalej, włączając klasę instrukcji TSQL i kop głębiej.
GO
jest akceptowanym i domyślnym terminatorem wsadowym popularnych klientów, których używamy (tj. SSMS i sqlcmd), ale warto zauważyć, że rzeczywistyGO
ciąg jako terminator wsadowy może ulec zmianie i można go konfigurować.Instrukcja Batch vs T-SQL
Jest to jasno określone w SQL Server BOL tutaj
Partia to grupa co najmniej jednej instrukcji Transact-SQL wysłanej w tym samym czasie z aplikacji do programu SQL Server w celu wykonania. Go to separator partii używany w większości aplikacji klienckich, w tym SSMS.
SQL Server kompiluje instrukcje partii w pojedynczą jednostkę wykonywalną, zwaną planem wykonania. Instrukcje w planie wykonania są następnie wykonywane pojedynczo.
W prostym znaczeniu opartym na moim zrozumieniu RPC ma miejsce, gdy wykonujesz zapisany proces przy użyciu interfejsu API klienta (np. W ADO.net CommandObject. Metoda wykonania)
Bardziej szczegółowe wyjaśnienie znajduje się w jednej z internetowych grup dyskusyjnych zamieszczających tutaj :
źródło