필자는 피벗 테이블과 분석을 수행하기 위해 Excel에 들어가야하는 커다란 데이터 세트를 가지고 있습니다.SQL Server : Excel로 페이지 매기기
일반적으로 데이터가 1 백만 라인 표시에 도달하지 않기 때문에이 작업을 수행 할 수 있습니다. SQL Server 데이터 가져 오기를 수행하고 SQL 문을 지정합니다.
여기에 내 현재 SQL
WITH n AS (
Select A1.AccountID, A1.ParentAccountID, A1.Name
FROM Account AS A1
WHERE A1.ParentAccountID = 92
UNION ALL
SELECT A2.AccountID, A2.ParentAccountID, A2.Name
FROM Account AS A2
JOIN n
ON A2.ParentAccountID=n.AccountID
)
select n.*, D.DeviceID, A.*, P.*
FROM n
LEFT OUTER JOIN
Device AS D
ON D.AccountID = n.AccountID
LEFT OUTER JOIN
Audit as A
ON A.AccountID = n.AccountID
RIGHT OUTER JOIN
DeviceAudit As P
ON P.AuditID = A.AuditID
WHERE A.AuditDate > CAST('2013-03-11' AS DATETIME)
ORDER BY n.AccountID ASC, P.DeviceID ASC, A.AuditDate DESC
이 권한은 지금 나에게 내가 필요의 100 %를 반환합니다. 지난 30 일 동안 1,800 만 기록 다음 10 만 건 또는 50 만 건의 레코드를 찾을 수있는 간단한 방법이 있기를 바랬습니다.
나는 오프셋을 사용할 수있는 것은 아니지만 첫 번째 청크를 얻으려면 TOP 100000
을 사용할 수 있습니다.
현재 실행 중이며 20 분 내에 완료됩니다. 이것은 이것을 수행해야하는 많은 계정 계층 구조 중 하나입니다. 바라기를이 pagination는 cpu 현명한 너무 비싸지 않을 것이다.
CSV로 가져 오기를 시도했으나 12GB 크기의 CSV 파일을 제공하기 때문에 시간이없고 따로 떨어져 있습니다.
, ROW_NUMBER() OVER (ORDER BY {whatever id}) AS row
는 그런 다음 이전 쿼리 하위 쿼리와 쿼리를 만들 수 있습니다 : SQL 2005 원래 쿼리의 select 절에 행 번호를 추가하기 때문에
답변을 찾았습니까? 나는 같은 상황에 처해있다. –