我有两张表,大部分字段一样,我就建了一个用union的视图,CREATE view [dbo].[V_Mov_Ser]  
AS select 'mov' as type, id,cname,ename,othername,pinyin from dbo.T_Mov union select 'ser' as type, id,cname,ename,othername,pinyin from dbo.T_Ser
视图没有主键,问题是我用 ID大于多少和SELECT TOP分页 的存储过程对视图进行分页查询,查询第二页以上的数据超级慢,要10秒左右,我的数据量两张表加起来才5000多,因此我想做索引加快查询速度,但是union貌似做不了索引,求大神们给予解决方法。谢谢!

解决方案 »

  1.   


    --建议改成union allalter view [dbo].[V_Mov_Ser]  
    AS 
    select 'mov' as type, id,cname,ename,othername,pinyin from dbo.T_Mov 
    union all
    select 'ser' as type, id,cname,ename,othername,pinyin from dbo.T_Ser
      

  2.   

    先对union 的原始表加索引
      

  3.   

    給表dbo.T_Mov 和 dbo.T_Ser的ID字段增加索引
      

  4.   

    给表加索引,不过这个查询加索引性能也不一定快,没有WHERE条件,而且表不大。