http://topic.csdn.net/u/20101122/09/a2ba13b2-7d07-4d4a-8222-677ccbc67503.html
先看下我的视图 代码 一共有两张表关联 
SELECT     dbo.T_wareOutWarehouseDetails.PositionCode, dbo.T_wareOutWarehouseDetails.PositionName, dbo.T_wareOutWarehouseDetails.OwnerWarehouse, 
                      dbo.T_wareOutWarehouseDetails.OwnerCompanyCode, dbo.T_wareOutWarehouseBillMain.BillNo, dbo.T_wareOutWarehouseBillMain.OutWarehouseDate, 
                      dbo.T_wareOutWarehouseBillMain.WarehouseMan, dbo.T_wareOutWarehouseBillMain.Re, dbo.T_wareOutWarehouseBillMain.PlanState, 
                      dbo.T_orderMain.CustomerCode, dbo.T_orderMain.CustomerName, dbo.T_wareOutWarehouseDetails.GoodsStandard, dbo.T_wareOutWarehouseDetails.GoodsName, 
                      dbo.T_wareOutWarehouseDetails.GoodsCode, dbo.T_wareOutWarehouseBillMain.Recorder, dbo.T_wareOutWarehouseBillMain.RecordDate, 
                      dbo.T_wareOutWarehouseBillMain.Modifier, dbo.T_wareOutWarehouseBillMain.ModifyDate, dbo.T_wareOutWarehouseBillMain.Inputer, 
                      dbo.T_baseGoodsPlaceInfo.SearchString, dbo.T_orderMain.StorageType, dbo.T_orderMain.OrderType, dbo.T_orderMain.InCustomerName, 
                      dbo.T_orderMain.OutCustomerName, dbo.T_orderMain.CustomerOutCode, SUM(dbo.T_wareOutWarehouseDetails.FirstNum) AS FirstNun, 
                      SUM(dbo.T_wareOutWarehouseDetails.SecondNum) AS SecondNum, SUM(dbo.T_baseGoods.GoodsGross * dbo.T_wareOutWarehouseDetails.SecondNum) 
                      AS GoodsGross, SUM(dbo.T_baseGoods.GoodsNet * dbo.T_wareOutWarehouseDetails.SecondNum) AS GoodsNet, 
                      SUM(dbo.T_orderDetails.UnitPrice * dbo.T_wareOutWarehouseDetails.SecondNum) AS GoodsValue, 
                      SUM(dbo.T_baseGoods.InPackCubage * dbo.T_wareOutWarehouseDetails.SecondNum) AS GoodsCubage
FROM         dbo.T_orderDetails RIGHT OUTER JOIN
                      dbo.T_wareOutWarehouseDetails ON dbo.T_orderDetails.KeyID = dbo.T_wareOutWarehouseDetails.OrderDetailsKeyID LEFT OUTER JOIN
                      dbo.T_baseGoods ON dbo.T_wareOutWarehouseDetails.GoodsKeyID = dbo.T_baseGoods.KeyID LEFT OUTER JOIN
                      dbo.T_baseGoodsPlaceInfo ON dbo.T_wareOutWarehouseDetails.PositionKeyID = dbo.T_baseGoodsPlaceInfo.KeyID LEFT OUTER JOIN
                      dbo.T_orderMain ON dbo.T_wareOutWarehouseDetails.OrderKeyID = dbo.T_orderMain.KeyID LEFT OUTER JOIN
                      dbo.T_wareOutWarehouseBillMain ON dbo.T_wareOutWarehouseDetails.OutWarehouseBillKeyID = dbo.T_wareOutWarehouseBillMain.KeyID
GROUP BY dbo.T_wareOutWarehouseDetails.PositionCode, dbo.T_wareOutWarehouseDetails.PositionName, dbo.T_wareOutWarehouseDetails.OwnerWarehouse, 
                      dbo.T_wareOutWarehouseDetails.OwnerCompanyCode, dbo.T_wareOutWarehouseBillMain.BillNo, dbo.T_wareOutWarehouseBillMain.OutWarehouseDate, 
                      dbo.T_wareOutWarehouseBillMain.WarehouseMan, dbo.T_wareOutWarehouseBillMain.Re, dbo.T_wareOutWarehouseBillMain.PlanState, 
                      dbo.T_orderMain.CustomerCode, dbo.T_orderMain.CustomerName, dbo.T_wareOutWarehouseDetails.GoodsStandard, dbo.T_wareOutWarehouseDetails.GoodsName, 
                      dbo.T_wareOutWarehouseDetails.GoodsCode, dbo.T_wareOutWarehouseBillMain.Recorder, dbo.T_wareOutWarehouseBillMain.RecordDate, 
                      dbo.T_wareOutWarehouseBillMain.Modifier, dbo.T_wareOutWarehouseBillMain.ModifyDate, dbo.T_wareOutWarehouseBillMain.Inputer, 
                      dbo.T_baseGoodsPlaceInfo.SearchString, dbo.T_orderMain.StorageType, dbo.T_orderMain.OrderType, dbo.T_orderMain.InCustomerName, 
                      dbo.T_orderMain.OutCustomerName, dbo.T_orderMain.CustomerOutCode
如何优化这个呢?这个在项目中查询一次调用了两次查询视图 而且查询1次视图就已经很慢了  不能全部查询,如果全部查询查询不出来 我现在想要查询全部数据 但这个速度问题纠结了我两天多,谢谢大侠的帮忙 指点 说的越详细越好 最好能教我如何更改这个视图里的代码。再次感谢!!!急啊。

解决方案 »

  1.   

    我用的是2005 sql server 数据库 我点反键对视图不能建立索引啊   郁闷啦。
      

  2.   

    给表加索引,如:
    dbo.T_wareOutWarehouseDetails.OrderDetailsKeyID、
    dbo.T_baseGoods ON dbo.T_wareOutWarehouseDetails.GoodsKeyID、
    dbo.T_baseGoodsPlaceInfo ON dbo.T_wareOutWarehouseDetails.PositionKeyID等等。
    就是那些用来作关联的字段,加上索引。
      

  3.   

    实在不行,你还是转到SQL去问吧
      

  4.   

    索引视图 没听过…… 发个微软地址给你看下
    http://www.microsoft.com/china/technet/prodtechnol/sql/2005/ipsql05iv.mspx