Sql 在分区视图中搜索

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-

我们有一个partiton视图
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()时,它正在不必要地搜索所有表