簡體   English   中英

如何在 SQL Server 中同時運行多個相互獨立的簡單選擇語句?

[英]How to run multiple simple select statements independently of each other simultaneously in SQL Server?

我在 ubuntu 上安裝了一個 SQL Server,只有一個表(通過sqlcmd訪問)有近 2 萬億行。 它目前在列索引A上有一個聚集索引(這對我沒有用)。

我想對數據做一個選擇語句

select b, c, d, e, f 
from table 
where b = 'a vehicle number'

並將結果寫入.csv文件。 但是,即使在 b 列上創建非聚集索引后,該查詢在計算機上運行也需要大約 20 分鍾。

我必須對 400 個不同的車輛編號運行相同的查詢,執行需要幾天時間。

我怎樣才能使這個過程更快? 我能否以某種方式同時運行兩個選擇語句(用於兩輛車),以便這兩個語句在 20 分鍾內完成? (不是 20 + 20 = 40)?

我有一台配備 128 GB RAM、40 核、Intel xeon 4210 @ 2.2Ghz 的強大 PC。

創建一個表來存儲車輛編號並將其連接到另一個表,這樣單個查詢將檢索您感興趣的所有行,您可以枚舉結果。

select t1.b, t1.c, t1.d, t1.e, t1.f 
from table1 as t1
inner join table2 as t2 on t1.b = t2.b

您也可以嘗試使主鍵/聚集索引成為 a、b 的組合。 有這么多行,它可能不切實際,但也許值得一試。

此外,似乎有什么問題,請使用 DBCC 檢查完整性並定期重建索引。

我認為他們不提供帶有 linux 版本的 Sql Server Management Studio? 如果他們這樣做,使用它來顯示查詢成本,它將分解為每個步驟,並為您提供每個步驟的計算和 I/O 成本的值。

暫無
暫無

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

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