Yanıtlar:
Sanırım çoğunlukla Profiler sınıfları hakkında konuşuyorsunuz, ancak açıklama yine de duruyor.
Bir SQL toplu işlemi birlikte gruplandırılmış ve bir GO ifadesiyle ayrılmış bir veya daha fazla ifade grubudur. EG: daha fazla SELECT ve INSERT ifadesi sonunda bir GO varsa bir toplu iş oluşturur.
RPC çağrısı, bir istemci uygulamasından veritabanına gelen bir çağrıdır. EG: bir windows servisi, bir web uygulaması, bir windows uygulaması, veri tabanına bağlantısı gereken her şey RPC çağrısı yapar.
Şimdi, Profiler'da veritabanı sunucusuna dokunan her şeyi göreceksiniz. Management Studio'dan bir parti, harici bir uygulamadan RPC çağrısı (toplu iş veya saklı yordam çağrısıdır), Management Studio'dan bir yordam yürütme.
Her biri TSQL deyimlerinden oluşur, bu nedenle bu Profiler sınıfı, yürütmeyi daha da genişletmek, gerçekte ne yapıldığını görmek için kullanışlıdır. Ne ekler, seçer ... vb.
Profiler'de bunlara bakmanın en kolay yolu, yalnızca End RPC çağrısını veya Toplu aramayı sonlandır özelliğini etkinleştirmektir ve orada gereken tüm istatistikleri göreceksiniz (süre, IO, CPU). Ardından, TSQL Statements sınıfını etkinleştirerek daha da ileri gidin ve daha derine inin.
Toplu vs T-SQL Bildirimi
Bu açıkça burada açık SQL Server BOL tanımlanır
Toplu iş, aynı anda bir uygulamadan yürütme için SQL Server'a gönderilen bir veya daha fazla Transact-SQL ifadesi grubudur . Go , SSMS dahil olmak üzere çoğu istemci uygulamasında kullanılan bir toplu ayırıcıdır.
SQL Server, toplu iş ifadelerini yürütme planı olarak adlandırılan tek bir yürütülebilir birim halinde derler. İcra planındaki ifadeler daha sonra birer birer yürütülür.
Anlayışımı temel alan basit bir ifadeyle RPC, istemci API'sini kullanarak depolanmış bir proc çalıştırdığınızda gerçekleşir (örn. ADO.net CommandObject. Execute yönteminde)
Burada yayınlanan internet haber grubunun birinde daha ayrıntılı bir açıklama bulunmaktadır :
RPC "vs" batch ", ADO.NET'in (veya herhangi bir SQL Server istemcisinin) kullandığı TDS yürütme modudur. Parametresiz düz bir SQL ifadesi yürütüldüğünde, bir" toplu iş "kullanırız. RPC'yi kullanıyoruz (bu, tek başına ağ uzaktan yordam çağrısı ile aynı RPC ile aynı değil, sadece bu modu TPC'de (SQL Server ağ protokolü) RPC olarak adlandırırız.) Ayrıca, parametre ile bir toplu iş yürütürseniz, aslında sp_executesql adında bir depolanmış-proc kullanıyoruz ve SQL deyiminin kendisini ve parametrelerin geri kalanını ona aktarıyoruz, bu yüzden RPC olarak da ortaya çıkıyor.
Pablo Castro
Program Yöneticisi - ADO.NET Team
Microsoft Corp.
GO
gerekirse, kullandığımız popüler istemcilerin (yani SSMS ve sqlcmd) kabul edilen ve varsayılan parti sonlandırıcısıdır, ancakGO
parti sonlandırıcısı olarak gerçek dizenin değişebilir ve yapılandırılabilir olduğunu belirtmekte fayda vardır .