ピボット テーブルと分析を行うために Excel に入力する必要がある大規模なデータ セットがあります。
データが 100 万行に達することはないので、通常はこれを行うことができます。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 万件のレコード。次の 100,000 または 500,000 レコードを見つける簡単な方法があることを期待していました。
最初のチャンクを取得するために使用できますが、使用TOP 100000
できるオフセットがないようです。
現在、これは実行され、20 分で完了します。これは、これを実行しなければならない多くのアカウント階層の 1 つです。願わくば、このページネーションが CPU に関して高すぎないことを願っています。
インポートすることを期待して CSV にエクスポートしようとしましたが、12GB の csv ファイルしか得られず、分解する時間がありません。