Sql server SQL分区、查询分析器和性能

Sql server SQL分区、查询分析器和性能,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我正在把桌子隔开。从我所读到的内容来看,SQL将根据需要使用基于查询谓词的分区 例如,如果我有一个2005-2009之间的记录分区和另一个2010-current之间的记录分区,并且我选择了For all records=2010,SQL将由于分区函数而忽略第一个分区。如果我在2008-2010年间搜索记录,SQL将同时使用这两个分区,但会以并行方式执行。如果我查询所有没有谓词的记录,那么SQL将(尽其所能)以并行方式使用所有分区,这是正确的吗 表分区什么时候会导致性能瓶颈?您的观点都是正确的。

我正在把桌子隔开。从我所读到的内容来看,SQL将根据需要使用基于查询谓词的分区

例如,如果我有一个2005-2009之间的记录分区和另一个2010-current之间的记录分区,并且我选择了For all records=2010,SQL将由于分区函数而忽略第一个分区。如果我在2008-2010年间搜索记录,SQL将同时使用这两个分区,但会以并行方式执行。如果我查询所有没有谓词的记录,那么SQL将(尽其所能)以并行方式使用所有分区,这是正确的吗


表分区什么时候会导致性能瓶颈?

您的观点都是正确的。并行性与分区没有直接关系,尽管它更有可能破坏分区对齐之间的工作

对于最后一个问题,我所知道的分区何时会导致性能瓶颈的真实案例并不存在。如果并行性给您带来了性能问题,那么问题在于
并行性
,而不是
分区
——我重申它们没有直接关系。不正确并行化查询的常见问题在有分区或无分区的情况下都会出现,通常的解决方法也适用

相关阅读:


2005年,并行扫描和分区表出现了特定问题(每个分区只能运行一个线程)。根据2008年的内部书籍“分区表和非分区表之间的性能差异被最小化”,不确定这是否意味着它们不存在。