Mudanças entre as edições de "Solução de Problemas do SQL Server"
(→Query executa mais rápido no SSMS do que no LATROMI) |
m (→Query mais rápida no SSMS do que no LATROMI) |
||
Linha 2: | Linha 2: | ||
== Query mais rápida no SSMS do que no LATROMI == | == Query mais rápida no SSMS do que no LATROMI == | ||
− | Vários fatores podem influenciar | + | Vários fatores podem influenciar no tempo que uma consulta leva pra ser executada no banco de dados. Dentre esses fatores estão a falta (ou má utilização) de índices, a quantidade de registros, ou até mesmo a complexidade da QUERY. Mas se a QUERY leva menos tempo para executar no SSMS (Sql Server Management Studio) do que no LATROMI, o problema pode estar nas opções que são configuradas por padrão no SSMS e que não foram configuradas na aplicação. Geralmente, a opção que faz a diferença nesse caso é [https://docs.microsoft.com/pt-br/sql/t-sql/statements/set-arithabort-transact-sql?view=sql-server-2017 SET ARITHABORT = ON]. |
Habilite essa opção antes da chamada da QUERY ou STORED PROCEDURE. | Habilite essa opção antes da chamada da QUERY ou STORED PROCEDURE. |
Edição das 15h20min de 18 de julho de 2018
Esse artigo fornece algumas dicas para lidar com problemas do SQL Server, que podem afetar a utilização do LATROMI.
Índice
Query mais rápida no SSMS do que no LATROMI
Vários fatores podem influenciar no tempo que uma consulta leva pra ser executada no banco de dados. Dentre esses fatores estão a falta (ou má utilização) de índices, a quantidade de registros, ou até mesmo a complexidade da QUERY. Mas se a QUERY leva menos tempo para executar no SSMS (Sql Server Management Studio) do que no LATROMI, o problema pode estar nas opções que são configuradas por padrão no SSMS e que não foram configuradas na aplicação. Geralmente, a opção que faz a diferença nesse caso é SET ARITHABORT = ON.
Habilite essa opção antes da chamada da QUERY ou STORED PROCEDURE.
OBS.: Use a ferramenta Profiler para comparar as diferença entre as opções configuradas no SSMS e em outras aplicações.
Exemplos
SELECT
SET ARITHABORT = ON SELECT Orders.OrderID, SUM((UnitPrice * Quantity) - Discount) AS UnitPriceTotal FROM [Order Details] INNER JOIN Orders ON Orders.OrderID = [Order Details].OrderID WHERE OrderDate BETWEEN '2017-01-01' AND '2017-12-31' GROUP BY Orders.OrderID
STORED PROCEDURE
SET ARITHABORT = ON EXEC SP_GET_ORDERS_SUMMARY '2017-01-01', '2017-12-31'