Sql 在分区视图中搜索
我们有一个partiton视图Sql 在分区视图中搜索,sql,sql-server-2008,Sql,Sql Server 2008,我们有一个partiton视图scheduletest,它是表的联合scheduletest20120522,scheduletest20120523,scheduletest20120524,scheduletest20120525,就像这样从-7天到+7天 列为date,starttime,检查约束在starttime上 当我搜索scheduletestwith语句时 select top 10 * from scheduletest where starttime>'2012-05-
scheduletest
,它是表的联合scheduletest20120522
,scheduletest20120523
,scheduletest20120524
,scheduletest20120525
,就像这样从-7天到+7天
列为date
,starttime
,检查约束在starttime
上
当我搜索scheduletest
with语句时
select top 10 * from scheduletest where starttime>'2012-05-24 12:00:00'
select top 10 * from scheduletest where starttime>getdate()
它正在从以下表格中搜索:scheduletest20120524
,scheduletest20120525
,scheduletest20120526
在使用语句时
select top 10 * from scheduletest where starttime>'2012-05-24 12:00:00'
select top 10 * from scheduletest where starttime>getdate()
它正在从-7天到+7天的所有表中搜索,如scheduletest20120522
,scheduletest20120523
等
我尝试了sp_executesql
这比这要花更多的时间
请提供建议您使用的是
Top
子句,但您没有对所选数据进行排序。因此,您的请求是不确定的,并且在每次执行时会给您不同的结果
尝试在您的选择中添加一个
orderby
。即使我添加了orderby,它仍在所有表中搜索。我的问题是,如果我们给出getdate(),它将搜索所有表。虽然我们将日期命名为“2012-05-24”,但它只在“2012-05-24”中的表中搜索@santhosh您是否有与从scheduletest where starttime>cast('2012-05-24 12:00:00'为datetime)中选择前10*相同的结果?是的,我有相同的结果,结果没有变化。我希望只在相应的表中搜索。并非所有表。当ia m使用select top 10*from scheduletest where starttime>'2012-05-24 12:00:00'时,它正在正确的表中搜索,但在给StateMet select top 10*from scheduletest where starttime>getdate()时,它正在不必要地搜索所有表