Faaala galera! Todos bem? Feliz ano novo para todos, que 2024 seja um ótimo ano a todos nós!
Hoje vamos dar continuidade a serie de postagens sobre o ciclo de vida de uma query no SQL Server, estamos chegando quase no final dessa história (ou será que não? hehe). Você também pode ver o post1, post2 e o post3 dessa serie.
Pois bem, o SQL Server através do Query optimizer gerou o melhor plano de execução que ele conseguiu para que a query seja executada, depois disso ele passa a bola para o nosso protagonista hoje que é o Query Executor.
Nessa etapa do Query executor, já temos tudo pronto:
O CMD Parser já validou a sintaxe e o nome dos objetos (processo conhecido como ALGEBRIZER)
Verificado se existe um plano de execução no plan cache que atenda a query (caso encontre já vai direto para o query executor pulando o query optimizer)
Query optimizer gerou um plano (caso ele não exista)
Ou seja, basta de fato executar! E esse é o papel desse componente, simples e direto assim.
E aqui nessa fase vamos expandir uma outra estrutura em próximos posts. O Query Executor faz interação com o mecanismo de armazenamento para manusear os dados em si, seja lendo ou alterando/inserindo/deletando.
É importante destacar que esse passo separa os comandos a serem executados em 2 grupos: DML e DDL. Cada um deles provoca um tipo de interação e comportamento do Query Executor (no próximo post falaremos mais sobre isso).
Por fim, após executar a query, o retorno dela é endereçado novamente ao SNI (protocol layer) que devolve para a aplicação o resultado.
Para completar a nossa analogia com o restaurante o Query Executor é o cozinheiro que esta fazendo o prato em si, ele já recebeu todos os ingredientes e a receita que o chefe do restaurante passou(plano de execução), ele é quem executa a ação na pratica e depois chama o garçom (SNI) para levar o prato até a mesa do cliente no restaurante.
O Fluxo fica assim
APP >> SNI >> CMD Parser >> Plan Cache >> Query Executor >> SNI >> APP
Cliente >> Garçom >> Chefe da cozinha >> Cozinheiro >> Garçom >> Cliente
Alternativamente podemos ter
APP >> SNI >> CMD Parser >> Query Optimizer >> Query Executor >> SNI >> APP
Cliente >> Garçom >> Chefe da cozinha >> Chefe da cozinha cria receita >> Cozinheiro >> Garçom >> Cliente
Se você quer aprender muito mais e ser um(a) DBA SQL Server Jr faça parte da Iniciativa DBA (Saiba mais) !
Ebook 10 passos para ser um DBA SQL Jr (Saiba mais)!
Nos acompanhe em nossas redes sociais!
Grupo VIP Telegram: DBA On boarding
Youtube: DBA On boarding
Face & Instagram: DBA On boarding
Até a próxima, tchau!
Comentários