我有一个大型数据集,我需要进入 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 天的 1800 万条记录。我希望有一种简单的方法可以找到接下来的 100,000 或 500,000 条记录。
我可以TOP 100000
用来获取我的第一个块,尽管我似乎没有可用的偏移量。
目前这运行并在 20 分钟内完成。这是我必须执行此操作的许多帐户层次结构之一。希望这种分页不会太昂贵的 CPU 明智。
我确实尝试导出到 CSV 以希望将其导入,但这只是给了我一个 12GB 的 csv 文件,我没有时间分解。