Apa perbedaan antara kumpulan SQL, pernyataan T-SQL dan Panggilan Prosedur Jarak Jauh?
Bagaimana saya bisa tahu jika bagian dari kode T-SQL adalah kumpulan atau pernyataan?
sumber
Apa perbedaan antara kumpulan SQL, pernyataan T-SQL dan Panggilan Prosedur Jarak Jauh?
Bagaimana saya bisa tahu jika bagian dari kode T-SQL adalah kumpulan atau pernyataan?
Yah, saya kira Anda berbicara sebagian besar tentang kelas Profiler, tetapi penjelasannya tetap ada.
Kumpulan SQL adalah kumpulan satu atau lebih pernyataan yang dikelompokkan bersama dan dipisahkan oleh pernyataan GO. EG: lebih banyak pernyataan SELECT dan INSERT membentuk batch jika mereka memiliki GO di akhir.
Panggilan RPC adalah panggilan yang berasal dari aplikasi klien ke database. EG: layanan windows, aplikasi web, aplikasi windows, apa pun yang membutuhkan koneksi ke database sebenarnya membuat panggilan RPC.
Sekarang, di Profiler Anda akan melihat semua yang menyentuh server database. Kumpulan dari Management Studio, panggilan RPC (yang merupakan batch atau panggilan prosedur tersimpan) dari aplikasi eksternal, eksekusi prosedur dari Management Studio.
Masing-masing terdiri dari pernyataan TSQL, jadi kelas Profiler ini berguna jika Anda ingin memperluas eksekusi lebih lanjut, untuk melihat apa yang sebenarnya dieksekusi. Apa yang disisipkan, pilih .. dll
Cara termudah untuk melihatnya di Profiler adalah dengan mengaktifkan hanya panggilan End RPC, atau End batch call dan Anda akan melihat semua statistik yang diperlukan di sana (durasi, IO, CPU). Kemudian, bergerak lebih jauh dengan mengaktifkan kelas Pernyataan TSQL dan menggali lebih dalam.
GO
apakah terminator batch yang diterima dan default dari klien populer yang kami gunakan (yaitu SSMS dan sqlcmd), tetapi perlu dicatat bahwaGO
string aktual sebagai terminator batch dapat berubah dan dapat dikonfigurasi.Pernyataan Batch vs T-SQL
Ini jelas didefinisikan dalam SQL Server BOL di sini
Batch adalah sekelompok satu atau lebih pernyataan Transact-SQL yang dikirim secara bersamaan dari aplikasi ke SQL Server untuk dieksekusi. Go adalah pemisah batch yang digunakan dalam sebagian besar aplikasi klien termasuk SSMS.
SQL Server mengkompilasi pernyataan batch menjadi satu unit yang dapat dieksekusi, yang disebut rencana eksekusi. Pernyataan dalam rencana eksekusi kemudian dieksekusi satu per satu.
Dalam istilah sederhana berdasarkan pada pemahaman saya, RPC adalah ketika Anda menjalankan proc yang disimpan menggunakan API klien (misalnya dalam ADO.net CommandObject. Execute method)
Penjelasan lebih rinci dapat ditemukan di salah satu posting newsgroup internet di sini :
sumber