AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 34484
Accepted
FrogEye
FrogEye
Asked: 2013-02-11 03:39:38 +0800 CST2013-02-11 03:39:38 +0800 CST 2013-02-11 03:39:38 +0800 CST

Diferença entre lote SQL, instrução e RPC?

  • 772

Qual é a diferença entre lote SQL, instrução T-SQL e chamada de procedimento remoto?
Como posso saber se parte do código T-SQL é um lote ou instrução?

sql-server
  • 3 3 respostas
  • 34089 Views

3 respostas

  • Voted
  1. Best Answer
    Marian
    2013-02-11T06:06:22+08:002013-02-11T06:06:22+08:00

    Bem, suponho que você esteja falando principalmente sobre as classes do Profiler, mas a explicação permanece de qualquer maneira.

    Um lote SQL é um conjunto de uma ou mais instruções agrupadas e separadas por uma instrução GO. EX.: mais instruções SELECT e INSERT formam um lote se tiverem um GO no final.

    Uma chamada RPC é uma chamada que vem de um aplicativo cliente para o banco de dados. Por exemplo: um serviço do Windows, um aplicativo da Web, um aplicativo do Windows, o que quer que precise de uma conexão com o banco de dados, na verdade, faz uma chamada RPC.

    Agora, no Profiler, você verá tudo o que toca o servidor de banco de dados. Um lote do Management Studio, uma chamada RPC (que é um lote ou uma chamada de procedimento armazenado) de um aplicativo externo, uma execução de procedimento do Management Studio.

    Cada um deles é formado por instruções TSQL, então esta classe Profiler é útil caso você queira expandir ainda mais a execução, para ver o que é realmente executado. O que insere, seleciona..etc.

    A maneira mais fácil de visualizá-los no Profiler é habilitar apenas End RPC call ou End batch call e você verá todas as estatísticas necessárias (duração, IO, CPU). Em seguida, vá adiante habilitando a classe TSQL Statements e aprofunde-se.

    • 32
  2. SQL Learner
    2013-02-11T06:17:08+08:002013-02-11T06:17:08+08:00

    Instrução em lote vs T-SQL

    Isso está claramente definido no SQL Server BOL aqui

    Um lote é um grupo de uma ou mais instruções Transact-SQL enviadas ao mesmo tempo de um aplicativo para o SQL Server para execução. Go é um separador de lote usado na maioria dos aplicativos cliente, incluindo SSMS.

    O SQL Server compila as instruções de um lote em uma única unidade executável, chamada de plano de execução. As instruções no plano de execução são executadas uma de cada vez.

    Em um termo simples baseado no meu entendimento RPC é quando você executa um proc armazenado usando a API do cliente (por exemplo, no ADO.net CommandObject. Execute o método)

    Uma explicação mais detalhada é encontrada em uma das postagens do grupo de notícias da Internet aqui :

    RPC" versus "lote" é o modo de execução TDS que o ADO.NET (ou qualquer cliente SQL Server) usa. Quando uma instrução SQL simples sem parâmetros é executada, usamos um "lote". Quando um procedimento armazenado é executado, usamos RPC (não é o mesmo que RPC como a chamada de procedimento remoto de rede autônoma, apenas chamamos esse modo de RPC no TDS (o protocolo de rede do SQL Server)). Além disso, se você executar um lote com parâmetro, na verdade, usamos um procedimento armazenado chamado sp_executesql e passamos a própria instrução SQL e o restante dos parâmetros para ela, para que ela também apareça como RPC.

    Pablo Castro
    Gerente de Programas - Equipe ADO.NET
    Microsoft Corp.

    • 17
  3. Juan Romero 619
    2022-06-09T11:19:40+08:002022-06-09T11:19:40+08:00

    insira a descrição da imagem aqui

    Então, basicamente, o nome RPC é confuso porque no SQL Profiler, ele está nas categorias de procedimento armazenado.

    • -3

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve