[英]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中的一天选择)
根据我对分区表的理解,它应该只搜索它需要的适当数据/分区?
所以我的问题:
我如何比较DateTime2
列效果查询?
例如,我可以像这样查询:
select * from LogsTable where [date] like '2014-09-15'
或者我能做到:
select * from LogsTable where [date] = CAST('2014-09-15'AS DATETIME2)
分区函数是否自动查看[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.