Você poderia aconselhar qual é a melhor solução para comparar o desempenho da consulta para Tabela vs Visualização.
Quero dizer ter dois bancos de dados no mesmo servidor ( SQL Server 2016
). Ambos incluem os mesmos dados, mas em esquemas diferentes, então, digamos, banco de dados A
, temos dados em uma tabela , no banco de A.Data
dados B, os mesmos dados estão nas tabelas B.Data1
e B.Data2
. B.Data3
Portanto, no banco de dados B
, existem alguns VIEVs que mostram os mesmos dados que a tabela Data no banco de dados A
(então, por exemplo, digamos que temos view View_Data
no banco de dados B
).
Qual é a melhor maneira de comparar desempenho/eficiência para consultas de tabela A.Data
e visualização B.View_Data
? Basta SET STATICTICS IO ON
e comparar essas estatísticas?
SET STATISTICS ON
pode lhe dar uma dica rápida, mas leituras lógicas e físicas não são tudo. Além disso, a saída pode ser complicada para compilar, considerando que você pode ter várias iterações, várias tabelas e diferentes tipos de IO físico. O analisador de estatísticas pode ser útil: http://statisticsparser.com/ .Eu costumo disparar um rastreamento Extended Event (XE) e lá comparar a duração, CPU etc. Para mim, essa é uma imagem mais completa e também mais fácil de digerir. Alguns acham difícil trabalhar com o XE, mas eu literalmente aciono esse rastreamento em apenas alguns segundos. Aqui está uma postagem no blog que escrevi sobre como usar o XE e evitar alguns obstáculos, etc: http://sqlblog.karaszi.com/tips-for-getting-started-with-extended-events/