Quelle est la différence entre batch SQL, instruction T-SQL et appel de procédure distante?
Comment savoir si une partie du code T-SQL est un lot ou une instruction?
la source
Quelle est la différence entre batch SQL, instruction T-SQL et appel de procédure distante?
Comment savoir si une partie du code T-SQL est un lot ou une instruction?
Eh bien, je suppose que vous parlez surtout des classes Profiler, mais l'explication reste valable.
Un lot SQL est un ensemble d'une ou plusieurs instructions regroupées et séparées par une instruction GO. EG: plusieurs instructions SELECT et INSERT forment un lot si elles ont un GO à la fin.
Un appel RPC est un appel provenant d'une application cliente vers la base de données. Exemple: un service Windows, une application Web, une application Windows, tout ce qui nécessite une connexion à la base de données effectue un appel RPC.
Maintenant, dans Profiler, vous verrez tout ce qui touche le serveur de base de données. Un lot de Management Studio, un appel RPC (qui est un appel de lot ou de procédure stockée) à partir d'une application externe, une procédure exécutée à partir de Management Studio.
Chacune d'entre elles est formée d'instructions TSQL. Cette classe Profiler est donc utile si vous souhaitez développer davantage l'exécution afin de voir ce qui est réellement exécuté. Que insère, selects..etc.
La manière la plus simple de les consulter dans Profiler consiste à n’activer que l’appel End RPC ou End batch call et vous y verrez toutes les statistiques nécessaires (durée, E / S, CPU). Ensuite, allez plus loin en activant la classe TSQL Statements et approfondissez davantage.
GO
est le terminateur de batch accepté et par défaut des clients populaires que nous utilisons (SSMS et sqlcmd), mais il convient de noter que laGO
chaîne réelle en tant que terminaison de lot est susceptible de changer et est configurable.Instruction Batch vs T-SQL
Ceci est clairement défini dans SQL Server BOL ici
Un lot est un groupe d'une ou plusieurs instructions Transact-SQL envoyées simultanément d'une application à SQL Server pour exécution. Go est un séparateur de lots utilisé dans la plupart des applications clientes, y compris SSMS.
SQL Server compile les instructions d'un lot en une seule unité exécutable, appelée plan d'exécution. Les instructions du plan d'exécution sont ensuite exécutées une par une.
Dans un terme simple basé sur ma compréhension du code RPC, vous exécutez une procédure stockée à l'aide de l'API client (par exemple, dans la méthode ADO.net CommandObject. Execute).
Une explication plus détaillée se trouve dans l'un des messages postés sur les groupes de discussion Internet ici :
la source