查询大表

时间:2012-01-16 16:51:40

标签: tsql

查询大表(> 150万行)3次或将3个条件放在同一个查询中是否更好?示例where子句如下。有类似或更复杂的where条款。我的预感是将所有这些都放在同一个where。但需要社区的一些意见。提前谢谢。

where (a =1 or b=1) and (a=2 or b=3) and (c=1 or d=3)

4 个答案:

答案 0 :(得分:4)

单次访问数据库绝对是首选。确保您对abcd列编制索引,您应该没问题。

答案 1 :(得分:0)

通常,将它们全部放在同一个where子句中会更快。但是,每个查询都不同,请确保检查每个查询的查询计划,以确保您可以获得最佳性能。

答案 2 :(得分:0)

这一切都取决于你的模式(数据类型,键,标记等),一般来说我会说你最好将所有条件添加到同一个where子句中,以便查询优化器尽可能多地使用信息来工作用。找出答案的最佳方法是运行一些测试,以确定哪种方法可以在数据/架构上产生最佳性能。

答案 3 :(得分:0)

将所有内容放在一个查询中。

除了减少开销外,您还可以通过这种方式消除重复。如果您的行符合多个条件,则如果您多次查询,它将在最终结果集中显示两次。