image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Gabriel Oliveira
Gabriel Oliveira25/09/2023 14:07
Compartilhe

Banco de dados Relacional - Ordem de execução x Ordem de sintaxe

    Olá! Seja bem-vindo(a) ao meu primeiro artigo sobre banco de dados, espero que goste do conteúdo.

    Neste artigo vamos falar sobre a ordem de execução das consultas e a ordem correta da sintaxe de uma query em um banco de dados relacional, utilizando como exemplo o Microsoft SQL Server.

    Sabe-se que a maioria das linguagens de programação segue uma abordagem sequencial, processando os códigos linha por linha. No entanto, em sistemas de gerenciamento de banco de dados, como o Microsoft SQL Server, a execução de consultas segue uma ordem de processamento lógica definida, que difere da simples leitura sequencial. Trata-se de uma linguagem “declarativa”, ou seja, ao escrever a consulta SQL, nós declaramos quais dados esperamos como resultado da consulta, mas não indicamos como obtê-los. Abaixo vamos analisar a diferença entre a ordem correta da sintaxe e a ordem lógica de processamento de uma query.

    ORDEM DE SINTAXE x ORDEM LÓGICA DE PROCESSAMENTO

    Embora o otimizador de querys determine uma ordem lógica de execução das operações, a ordem de sintaxe é a estrutura gramatical correta que deve ser seguida para escrever uma consulta SQL válida.

    ORDEM DE SINTAXE

    A ordem que uma consulta SQL deve respeitar para que o comando seja válido.

    8 - SELECT

    9 - DISTINCT

    11 - TOP

    1 - FROM

    2 - ON

    3 - JOIN

    4 - WHERE

    5 - GROUP BY

    6 - WITH CUBE OU WITH ROLLUP

    7 - HAVING

    10 - ORDER BY

    ORDEM LÓGICA DE PROCESSAMENTO

    É a sequência em que as operações da consulta são executadas pelo otimizador de querys para obter o resultado desejado. A sequência lógica é a seguinte:

    1 - FROM

    2 - ON

    3 - JOIN

    4 - WHERE

    5 - GROUP BY

    6 - WITH CUBE OU WITH ROLLUP

    7 - HAVING

    8 - SELECT

    9 - DISTINCT

    10 - ORDER BY

    11 – TOP

    Vale lembrar: A sequência citada anteriormente geralmente é verdadeira, no entanto, existem casos incomuns em que a sequência pode ser diferente.

    Como por exemplo, o uso de índices, dependendo da sua disponibilidade e seletividade, o otimizador pode executar uma consulta primeiro no índice e, em seguida, acessar as tabelas de dados relevantes na consulta. Podem haver casos semelhantes ao realizar Joins, Subconsultas e outros casos.

    É importante observar que esses desvios na ordem de execução são determinados pelo otimizador de consultas do SQL Server, onde o objetivo é obter o plano de execução mais eficiente para a consulta.

    Agradeço por ler até aqui e espero que você tenha aproveitado o conteúdo. Se você gostou do artigo, curta, comente e compartilhe com seus amigos, para que mais pessoas possam aproveitar essa leitura. Obrigado pelo seu tempo!  

    fontes: https://www.cadcobol.com.br/sql_order_of_operations.htm | https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?view=sql-server-ver16

    Compartilhe
    Comentários (0)