복붙노트

[SQL] SQL 쿼리의 계산 실행 시간?

SQL

SQL 쿼리의 계산 실행 시간?

나는 그런 다음 사용자가 레코드를 검색 할 때 나는 시간을 구글처럼 결과가 동일 얻을하는 데 걸리는 쿼리를 표시하려면, 내 웹 사이트에 검색 기능을 제공하고 있습니다. 우리가 무엇을 검색 할 때 다음 결과를 얻을하는 데 걸리는 시간이 얼마나 디스플레이를 구글?

이를 위해 나는 @start 변수 내 SP에서 아래로 말의 차이를 찾는 선언;

DECLARE @start_time DATETIME

SET @start_time = GETDATE()

-- my query
SELECT * FROM @search_temp_table

SELECT RTRIM(CAST(DATEDIFF(MS, @start_time, GETDATE()) AS CHAR(10))) AS 'TimeTaken'

다른 쉽고 빠른 방법, 또는 우리가 실행하는 데 걸리는 시간 a를 쿼리를 찾을 수있는 쿼리의 한 줄이 있습니까?

나는 SQL 서버 2005을 사용하고 있습니다.

해결법

  1. ==============================

    1.우리는 네트워크를 통해 / 닫기 연결 및 전송 데이터를 설정하는 데 필요한 시간을 포함하는 응용 프로그램 코드에서이 문제를 모니터링 할 수 있습니다. 이것은 꽤 솔직 ...

    우리는 네트워크를 통해 / 닫기 연결 및 전송 데이터를 설정하는 데 필요한 시간을 포함하는 응용 프로그램 코드에서이 문제를 모니터링 할 수 있습니다. 이것은 꽤 솔직 ...

    Dim Duration as TimeSpan
    Dim StartTime as DateTime = DateTime.Now
    
    'Call the database here and execute your SQL statement
    
    Duration = DateTime.Now.Subtract(StartTime)
    Console.WriteLine(String.Format("Query took {0} seconds", Duration.TotalSeconds.ToString()))
    Console.ReadLine()
  2. ==============================

    2.당신이 정말로 당신의 DB에 그것을하려면 뭐, MSDN에 주어진 더 정확한 방법이있다 :

    당신이 정말로 당신의 DB에 그것을하려면 뭐, MSDN에 주어진 더 정확한 방법이있다 :

    SET STATISTICS TIME ON
    

    당신은 당신의 응용 프로그램에서이 정보를 읽을 수 있습니다.

  3. ==============================

    3.나는이 하나 더 도움이 간단 발견

    나는이 하나 더 도움이 간단 발견

    DECLARE @StartTime datetime,@EndTime datetime   
    SELECT @StartTime=GETDATE() 
    --Your Query to be run goes here--  
    SELECT @EndTime=GETDATE()   
    SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in milliseconds]   
    
  4. ==============================

    4.사용하십시오

    사용하십시오

    -- turn on statistics IO for IO related 
    SET STATISTICS IO ON 
    GO
    

    시간 계산 사용

    SET STATISTICS TIME ON
    GO
    

    다음은 모든 쿼리에 대한 결과를 제공 할 것입니다. 쿼리 입력 창 근처 메시지 창에서.

  5. ==============================

    5.

    declare @sttime  datetime
    set @sttime=getdate()
    print @sttime
    Select * from ProductMaster   
    SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'    
    
  6. ==============================

    6.왜 당신은 SQL에서 뭐하는거야? 틀림없이 그 데이터를 네트워크를 통해 각각의 방법을 셔플하는 데 걸리는 쿼리 시간 + 시간 대조적으로 "true"로 쿼리 시간을 표시하지 않지만, 데이터베이스 코드를 오염입니다. 나는 사용자가 신경 것으로 의심 - 사실, 그들은 아마도 아니라, 네트워크 시간을 포함 할 페이지를보고 그들을 위해 소요되는 시간에 그 모든 기여.

    왜 당신은 SQL에서 뭐하는거야? 틀림없이 그 데이터를 네트워크를 통해 각각의 방법을 셔플하는 데 걸리는 쿼리 시간 + 시간 대조적으로 "true"로 쿼리 시간을 표시하지 않지만, 데이터베이스 코드를 오염입니다. 나는 사용자가 신경 것으로 의심 - 사실, 그들은 아마도 아니라, 네트워크 시간을 포함 할 페이지를보고 그들을 위해 소요되는 시간에 그 모든 기여.

    왜 웹 응용 프로그램 코드에서 타이밍을하지? 이외에도 어떤 타이밍을하고 싶지 않아,하지만 당신은 같은 시저를 실행하고자하는 경우에, 당신은 엉망 필요가 없다는 것을 의미 아무것도에서 주위에 뭔가 당신이 필요하지 않습니다.

  7. ==============================

    7.당신이 사용할 수있는

    당신이 사용할 수있는

    SET STATISTICS TIME { ON | OFF }
    

    표시 (밀리 초)의 수는 구문 분석 컴파일, 각 문을 실행하는 데 필요한

    SET STATISTICS TIME ON시 성명의 시간 통계가 표시됩니다. OFF, 시간 통계가 표시되지 않을 경우

    USE AdventureWorks2012;  
    GO         
    SET STATISTICS TIME ON;  
    GO  
    SELECT ProductID, StartDate, EndDate, StandardCost   
    FROM Production.ProductCostHistory  
    WHERE StandardCost < 500.00;  
    GO  
    SET STATISTICS TIME OFF;  
    GO  
    
  8. ==============================

    8.이 시도

    이 시도

    DECLARE @StartTime DATETIME
    SET @StartTime = GETDATE()
    
      SET @EndTime = GETDATE()
      PRINT 'StartTime = ' + CONVERT(VARCHAR(30),@StartTime,121)
      PRINT '  EndTime = ' + CONVERT(VARCHAR(30),@EndTime,121)
      PRINT ' Duration = ' + CONVERT(VARCHAR(30),@EndTime -@starttime,114)
    

    그 그것을하지 않는 경우, SET STATISTICS TIME ON 시도

  9. from https://stackoverflow.com/questions/595762/calculate-execution-time-of-a-sql-query by cc-by-sa and MIT license