Câu trả lời:
Chà, tôi cho rằng bạn chủ yếu nói về các lớp Profiler, nhưng dù sao thì lời giải thích vẫn đứng vững.
Một lô SQL là một tập hợp của một hoặc nhiều câu lệnh được nhóm lại với nhau và được phân tách bằng câu lệnh GO. EG: nhiều câu lệnh CHỌN và CHERTN tạo thành một đợt nếu chúng có GO ở cuối.
Cuộc gọi RPC là cuộc gọi xuất phát từ ứng dụng khách đến cơ sở dữ liệu. EG: dịch vụ windows, ứng dụng web, ứng dụng windows, bất cứ điều gì cần kết nối với cơ sở dữ liệu thực sự thực hiện cuộc gọi RPC.
Bây giờ, trong Profiler bạn sẽ thấy mọi thứ chạm vào máy chủ cơ sở dữ liệu. Một lô từ Management Studio, một cuộc gọi RPC (là một đợt hoặc một cuộc gọi thủ tục được lưu trữ) từ một ứng dụng bên ngoài, một thực thi thủ tục từ Management Studio.
Mỗi trong số chúng được tạo thành từ các câu lệnh TSQL, vì vậy lớp Profiler này hữu ích trong trường hợp bạn muốn mở rộng thực thi hơn nữa, để xem những gì thực sự được thực thi. Những gì chèn, chọn..v.v.
Cách dễ nhất để xem chúng trong Profiler là chỉ cho phép kết thúc cuộc gọi RPC hoặc Kết thúc cuộc gọi hàng loạt và bạn sẽ thấy ở đó tất cả các số liệu thống kê cần thiết (thời lượng, IO, CPU). Sau đó, di chuyển xa hơn bằng cách bật lớp Báo cáo TSQL và đào sâu hơn.
Tuyên bố hàng loạt so với T-SQL
Điều này được định nghĩa rõ ràng trong SQL Server BOL tại đây
Một lô là một nhóm gồm một hoặc nhiều câu lệnh Transact-SQL được gửi cùng lúc từ một ứng dụng đến SQL Server để thực thi. Go là một dấu tách hàng loạt được sử dụng trong hầu hết các ứng dụng khách bao gồm SSMS.
SQL Server biên dịch các câu lệnh của một lô thành một đơn vị thực thi duy nhất, được gọi là kế hoạch thực hiện. Các câu lệnh trong kế hoạch thực hiện sau đó được thực hiện từng cái một.
Trong một thuật ngữ đơn giản dựa trên sự hiểu biết của tôi, RPC là khi bạn thực thi một Proc được lưu trữ bằng API máy khách (ví dụ: trong ADO.net CommandObject. Phương thức thực thi)
Một lời giải thích chi tiết hơn được tìm thấy trong một trong những nhóm tin đăng trên internet ở đây :
RPC "vs" batch "là chế độ thực thi TDS mà ADO.NET (hoặc bất kỳ máy khách SQL Server nào) sử dụng. Khi một câu lệnh SQL đơn giản không có tham số nào được thực thi, chúng tôi sử dụng" batch ". chúng tôi sử dụng RPC (đây không giống như RPC như cuộc gọi thủ tục từ xa mạng độc lập, chúng tôi tình cờ gọi RPC chế độ này trong TDS (giao thức mạng SQL Server)). Ngoài ra, nếu bạn thực hiện một lô với tham số, chúng tôi thực sự sử dụng một lưu trữ được gọi là sp_executesql và truyền chính câu lệnh SQL và phần còn lại của các tham số cho nó, vì vậy nó cũng hiển thị dưới dạng RPC.
Giám đốc chương trình Pablo Castro - Nhóm ADO.NET
Microsoft Corp.
GO
là bộ kết thúc lô mặc định được chấp nhận và mặc định của các máy khách phổ biến chúng tôi sử dụng (ví dụ SSMS và sqlcmd), nhưng đáng chú ý làGO
chuỗi thực tế như một bộ kết thúc hàng loạt có thể thay đổi và có thể định cấu hình được.