簡體   English   中英

大數據庫中的大數據如何選擇導出到excel-SQL

[英]How to select and export the large data in big database to excel - SQL

**我的任務是從數據庫中選擇和導出大量監控數據**
我的數據庫有兩個大表來存儲監控數據。
- 表MonitoringDataInfo (~60M 行):有一些字段id(pk)、stationId、createdAt和一組索引( stationId asc、 createdAt desc)
- 表監控數據(~300M 行):有一些字段id (pk)、dataId、indicator、value、unit和一組索引( dataId asc、 indicator asc)
(MonitoringDataInfoIDMonitoringData數據ID的外鍵)
我在下面做一個查詢:

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;

==> 此查詢在超過10分鍾后返回69253行。

我的問題是:
- 我應該如何優化執行時間以及數據庫?

先謝謝了!

在以下任一列上創建索引

    id, stationId, createdAt, sentAt column of 
    monitoring_data_info table

   and  dataId column of monitoring_data table 

根據數據,您可以創建索引,特別是在連接列和 where 子句列上

另外,不要使索引超載,因為我可以看到您已經對索引進行了分組,盡管它包含必要的列,但組索引中的其他列可能會導致重新使用數據,同樣建議在剛剛加入的列上建立索引並根據您的發送最近編輯

該查詢是在 Excel 中嗎?

以最少的轉換或查詢將這兩個工作表導出到數據庫表中可能會更快。 然后在數據庫引擎中進行Joining/Grouping,針對此類進行了更優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM