把语句贴出来看看。
可能需要优化!

解决方案 »

  1.   

    是不是做成视图查询会好些啊?
      

  2.   

    建立合适的索引
    不过语句也有关系
    最好是贴出来
      

  3.   

    select CR.NFlag,CR.CABLE_ID,IDTOCODE('Cable_Sect_Information',CR.SEG) as Seg
           ,GetResourceName(CR.NODE1_TYPE) as node1_Type
           ,GetNodeCode(Node1_Type,Node1_ID) as Node1_id
           ,GetResourceName(CR.Node2_Type) as node2_type
           ,GetNODECODE(CR.NODE2_Type,CR.Node2_ID) as node2_id
           ,CR.First_Cable,CR.Last_Cable,CR.Lay,CR.Length,CR.Re
           , T.CODE as TubeCode,CR.ID,H.CODE as HoleCode 
    from   cable_route CR,Many_Cable_Hole MC,TUBE T,Hole H
    where  H.Tube_id=T.id and  MC.Hole_Id=H.id 
    and    CR.id=MC.Cable_Route_Id and  CR.cable_id='201515' 
    Union  
    select CR.NFlag,CR.CABLE_ID,IDTOCODE('Cable_Sect_Information',CR.SEG) as Seg
           ,GetResourceName(CR.NODE1_TYPE)
           ,GetNodeCode(Node1_Type,Node1_ID) ,GetResourceName(CR.Node2_Type)
           ,GetNODECODE(CR.NODE2_Type,CR.Node2_ID)
           ,CR.First_Cable,CR.Last_Cable,CR.Lay,CR.Length,CR.Re
           , null as TubeCode,CR.ID,null as HoleCode from Cable_route CR 
    where  not exists (Select Cable_Route_ID from Many_Cable_Hole where Cable_route_ID=CR.iD) 
    and    CR.cable_id='201515'  表结构简介:
    以上语句用到的表:Cable_Route(路由表)、Many_Cable_Hole(路由分配表)、Tube(管段表)、Hole(管孔表)我现在要显示所有路由的信息。有的路由已经分配到了管孔中(并且可能分配了大于1次,否则我就用左外连接了),有的没有。
    有就显示这个路由所在管段和管孔,分配超过1次的,任取其一,没有就为空。其中还有几个函数用来做节点之类的。
    不知道我有没有描述清楚。
    另:当在我们自己局域网情况下,执行就不会出现这个问题。
    谢谢大家,帮我呀。
      

  4.   

    使用执行计划查看数据,是否花费大