繁体   English   中英

在SQL Server的分区表中搜索日期

[英]Searching for a date In a partitioned table in SQL Server

在SQL Server中对分区表执行查询时,是否必须执行任何特殊操作?

我问的原因是因为我们有一个相当大的SQL Server表,它在白天的“datetime2(2)”列上进行了分区。

每天都映射到自己的文件组,该文件组中的文件名称相应,例如Logs_2014-09-15.ndf

如果我对此表进行查询,则表示仅跨越2天。 我在ResourceMonitor中看到SQL Server正在访问2个以上的.ndf文件。 (编辑,事实上我已经注意到它通过每一个进行搜索。即使我从分区1中的一天选择)

根据我对分区表的理解,它应该只搜索它需要的适当数据/分区?

所以我的问题:

  1. 是这样的吗?
  2. 我如何比较DateTime2列效果查询?

    例如,我可以像这样查询:

     select * from LogsTable where [date] like '2014-09-15' 

    或者我能做到:

     select * from LogsTable where [date] = CAST('2014-09-15'AS DATETIME2) 
  3. 分区函数是否自动查看[time]元素(如果它在查询中)然后将sql发送到正确的分区?

Have you tried with this:

从LogsTable中选择*,其中Dateadd(D,0,Datediff(D,0,[date]))= CAST('2014-09-15'AS DATETIME2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM