Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo SQL Magazine 65 - Introdução ao Query Processor
Artigo publicado Revista SQL Magazine 65.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

![]()
Introdução ao Query Processor
Escolher o melhor caminho para chegar a determinado lugar pode ser considerado para muitos uma arte, isso porque sempre existem vários caminhos que levam ao mesmo destino. Executar uma tarefa da forma mais eficiente possível requer que o caminho percorrido seja o melhor dentre as centenas de variáveis que podem influenciar na escolha do melhor percurso.
No SQL Server o responsável por calcular a maneira mais eficiente de acesso aos dados é chamado de Query Processor, ele é dividido em duas partes, o Query Optimizer e o Query Execution Engine. Veremos neste artigo como o Query Optimizer funciona e quais os passos necessários para execução de um comando T-SQL.
Entender como funciona e como interpretar o trabalho do Query Optimizer é uma das melhores maneiras de aprimorar seus conhecimentos
Preparando o ambiente
Para melhor entendimento dos exemplos deste artigo criaremos uma tabela, com alguns dados e uma visão, que servirão como base para os testes que serão apresentados. A Listagem 1 contém o script para criação destes objetos.
O Script cria a tabela Funcionarios com algumas informações (ID, Nome, Salário, Telefone e Cidade) e, em seguida, são inseridos alguns registros. Logo após, uma view (vw_Funcionarios) é criada. A grosso modo, podemos dizer que Views são tabelas virtuais definidas por uma consulta T-SQL. A nossa view, criada na Listagem 1, retorna o nome e o salário de todos os funcionários que ganham mais de R$ 900,00.
Listagem 1. Script para criação dos objetos de teste
CREATE TABLE Funcionarios(ID Int IDENTITY(1,1) PRIMARY KEY,
Nome VarChar(30),
Salario Numeric(18,2),
Telefone VarChar(15),
Cidade VarChar(80));
INSERT INTO Funcionarios(Nome, Salario, Telefone, Cidade)
VALUES('José', 850.30, '11-55960015', 'São Paulo');
INSERT INTO Funcionarios(Nome, Salario, Telefone, Cidade)
VALUES('Antonio', 950, '11-81115544', 'São Paulo');
INSERT INTO Funcionarios(Nome, Salario, Telefone, Cidade)
VALUES('João', 1200, '11-44123321', 'São Paulo');
"
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Fabiano Neves Amorim
Certificado MCP, MCTS e MCITP Database Developer em SQL Server 2000/2005, Especialista em desenvolvimento de Data Warehouses utilizando SSIS, AS e SQL Server. Tunning em banco de dados SQL Server. Palestrante de WebCasts para Microsoft Brasil, participante ativo de fóruns MSDN e TechNet. Mantenedor ...




