일시적인 데이터에 대한 시뮬레이션을 실행하는 응용 프로그램이 있습니다. 계산은 지나치게 복잡하지는 않지만 계산에는 동일한 시뮬레이션에서 이전에 예측 된 시간 데이터가 필요합니다.TSQL 커서 및 스칼라 함수를 바꾸는 방법
15 분 간격으로 데이터 포인트가있는 1 주 데이터를 사용하여 시뮬레이션을한다고 가정합니다. 다음과 같이 예측 된 값의 단순 계산이다
PredictedValue = A + B + C + D
는 B, C 및 D의 값을 얻기 위해서는, 시뮬레이션 이전 T0에서 데이터, t-1, T-95, T-96를 계산할 필요 , t-672 및 t-673. 이것은 현재 및 이전 간격, 전날의 현재 및 이전 간격 및 이전 주간 현재 및 이전 간격에 대한 시간 데이터입니다.
나는 어느 기간 에든 데이터를 시뮬레이트하는 작업 구현을 가지고 있지만 성능은 대용량 데이터 세트에서 극히 열악합니다.
구현은 TSQL 커서를 사용하여 시뮬레이션 및 스칼라 함수로 시간 데이터를 반복하여 이전에 계산 된 데이터를 검색합니다.
기본적으로 데이터 집합이 클수록 시뮬레이션 실행 속도가 느립니다. 예를 들어, 1 일의 데이터를 사용하는 시뮬레이션은 < 1 분; 한 달의 데이터로 시뮬레이션하는 데 2-3 일이 걸립니다.
저는 커서 나 스칼라 함수를 사용하지 않고 TSQL 코드의 성능을 향상시킬 수있는 방법에 관심이 많습니다.
은 기존 구현을위한 몇 가지 코드를 공유합니다. 우리는 당신이 커서 대신 세트를 사용하여 다시 쓸 수 있도록 도울 수 있습니다 –
코드 일부를 게시 할 수 있습니까? – Beth
날짜/시간과 관련된 성능 문제는 종종 인덱스 (또는 인덱스 부족)와 관련이 있으며 WHERE 절에서 부적절하게 함수를 사용하는 경우가 많습니다. DB 엔진이 테이블의 모든 행에 함수를 적용하도록하면 (예 : WHERE YEAR (DATE_COL)> 2000, 테이블이 커지면 성능이 저하됩니다. – HABO