none
mssql2000 分区视图查询的问题 RRS feed

  • 问题

  • 由于数据库是mssql2000没有分区表的概念,源表数据量太大,目前想提高查询效率
    故按日期每月手工建立分区表,每月的数据放入对应的分区表中,并更新分区视图

    比如 有分区表如下
    T_MONTH_201101 约束为date[20110101,20110131]
    T_MONTH_201102 约束为date[20110201,20110228]

    分区视图如下
    VW_MONTH
    AS  
    SELECT * FROM T_MONTH_201101
    UNION ALL
    SELECT * FROM T_MONTH_201102

    --问题如下
    SELECT * FORM VW_MONTH WHERE DATE='20110103' --查看执行计划,查询只检索 表T_MONTH_201101

    但是如果按照下面的写法
    DECLARE @IN_DATE VARCHAR(8)
    SELECT @IN_DATE='20110103'
    SELECT * FROM VW_MONTH WHERE DATE=@IN_DATE --查看执行计划,查询会遍历两个表

    请问如果where必须用变量如何能取得只检索一张表的效果?
    2011年5月12日 8:47

答案

全部回复