Mudanças entre as edições de "Solução de Problemas do SQL Server"

De LATROMI Manuais
Ir para: navegação, pesquisa
m (Query mais rápida no SSMS do que no LATROMI)
(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 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].
+
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 ARITHABORT]'''.
  
Habilite essa opção antes da chamada da QUERY ou STORED PROCEDURE.
+
Habilite essa opção antes da chamada da QUERY ou STORED PROCEDURE:
 +
<source lang="sql">
 +
SET ARITHABORT = ON
 +
</source>
  
''OBS.: Use a ferramenta Profiler para comparar as diferença entre as opções configuradas no SSMS e em outras aplicações.''
+
''OBS.: Use a ferramenta [https://docs.microsoft.com/sql/tools/sql-server-profiler/sql-server-profiler?view=sql-server-2017 SQL Server Profiler] para verificar as opções configuradas para cada aplicação.''
  
 
=== Exemplos ===
 
=== Exemplos ===

Edição das 14h23min 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.

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 é ARITHABORT.

Habilite essa opção antes da chamada da QUERY ou STORED PROCEDURE:

SET ARITHABORT = ON

OBS.: Use a ferramenta SQL Server Profiler para verificar as opções configuradas para cada aplicação.

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'

Ver Também