如何在SQL Server中同时独立运行多个简单的select语句



我在ubuntu上安装了一个SQL Server,其中只有一个表(通过sqlcmd访问(有近2万亿行。它当前在列索引A上有一个聚集索引(这对我没有用处(。

我想对数据做一个选择声明

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

并将结果写入CCD_ 3文件。但是,即使在b列上创建了非聚集索引,这个查询也需要大约20分钟才能在计算机上运行。

我必须对400个不同的车辆编号运行相同的查询,执行起来需要几天时间。

如何加快此过程?我是否可以以某种方式同时运行两个select语句(针对两辆车(,以便在20分钟内完成这两个语句?(不是20+20=40(?

我有一台功能强大的电脑,128GBRAM,40核,英特尔xeon4210@2.2Ghz.

创建一个表来存储车辆编号,并将其连接到另一个表,这样一个查询将检索您感兴趣的所有行,并且您可以枚举结果。

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检查完整性并定期重建索引。

我认为他们没有为SqlServerManagementStudio提供linux版本?如果他们这样做了,使用它来显示查询成本,它会将其分解为每个步骤,并为您提供每个步骤的计算成本和i/o成本值。