如何选择大数据库中的大数据并导出到excel - SQL



**我的任务是从数据库中选择并导出一个大的监控数据**
我的数据库有两个大的表来存储监控数据。
-表MonitoringDataInfo(~60M行):有一些字段id (pk), stationId, createdAt1组索引(stationId)asc,createdAtdesc)
-表MonitoringData(~300M行):有一些字段id (pk), dataId,指示器,值,单位和一个组索引(dataId)asc,asc)
(idofMonitoringDataInfodataId的外键的MonitoringData)
我查询如下:

SELECT
[Info].[id], [Info].[sentAt], [Data].[id] AS [Data.id], [Data].[indicator] AS [Data.indicator], [Data].[value] AS [Data.value]
FROM
[monitoring_data_info] AS [Info]
LEFT OUTER JOIN
[monitoring_data] AS [Data]
ON [Info].[id] = [Data].[dataId]
WHERE
[Info].[stationId] = N'EKTjhVrZibUE7h55b6tu'
AND [Info].[createdAt] BETWEEN N'2021-10-07 07:14:51.000 +00:00' AND N'2021-10-14 07:14:51.000 +00:00'
ORDER BY
[Info].[createdAt] ASC;

= =比;这个查询返回6925310分钟。

我的问题是:
-我应该如何做,以优化执行时间以及数据库?

谢谢!

创建一个索引

id, stationId, createdAt, sentAt column of 
monitoring_data_info table
and  dataId column of monitoring_data table 

根据不同的数据,您可以创建索引,特别是在连接列和子句列

同样,不要重载索引,因为我可以看到你有分组索引,虽然它包括必要的列,但组索引中的其他列可能会导致使用数据。同样,建议在刚刚加入的列上建立索引,并根据你最近的编辑

是否在Excel中查询?

通过最少的转换或查询,将两个工作表导出到数据库表中可能会更快。然后在数据库引擎中进行join/Grouping,这是更适合这样的。

最新更新