不用,作为优化可以建立cluster index

解决方案 »

  1.   

    数据库中有两个表a,b是不是可以直接在程序中写select * form a,b where a.id=b.id 呢?a,b中的id字段要不要多指定为索引呢,?
      

  2.   

    基于性能方面值建索引select a.*,b.* form a,b where a.id=b.id 
      

  3.   

    在数据库中执行:
    select agent.mc,agentprice.cpbm,agentprice.dlbm from agent,agentprice 
    where agentprice.dlbm(+) = agent.dlbm
    结果为 mc  cpbm  dlbm
          北京
          上海
    select agent.mc,agentprice.cpbm,agentprice.dlbm from agent,agentprice 
    where agentprice.dlbm = agent.dlbm(+)
    结果为 mc cpbm  dlbm
              112   021
    agent表中有两条记录,agentprice表中有一条记录。
    没有加号的那一边都能正常显示,郁闷啊!
      

  4.   

    楼上这位大哥怎么建cluster index 啊?
      

  5.   

    (+)表示外连接。如select * from a,b where a.a1=b.b1(+)表示如果b.b1和a.a1相等则选出,否则就在a.a1的后面附加空值。此时纪录数由a.a1来决定。如果a.a1有10条数据,而b.b1有5条数据,而a.a1=b.b1有1条数据,则显示为:
    a.a1:     b.b1:
    1         空
    2         空
    3         空
    4         空
    X         X  
    6         空
    7         空
    8         空
    9         空
      

  6.   

    在数据库中执行:
    select agent.mc,agentprice.cpbm,agentprice.dlbm from agent,agentprice 
    where agentprice.dlbm(+) = agent.dlbm
    结果为 mc  cpbm  dlbm
          北京
          上海
    select agent.mc,agentprice.cpbm,agentprice.dlbm from agent,agentprice 
    where agentprice.dlbm = agent.dlbm(+)
    结果为 mc cpbm  dlbm
              112   021
    agent表中有两条记录,agentprice表中有一条记录。
    没有加号的那一边都能正常显示,郁闷啊!
    这样说明两边没有相同的dlbm如果有的话,会出现正常记录的select agent.mc,agentprice.cpbm,agentprice.dlbm from agent,agentprice 
    where agentprice.dlbm = agent.dlbm
      

  7.   

    我的问题已经解决了,是由于我将两个字段定义成char和varchar2了,改成相同的就行了