select *  from table1 a,table2 b where a.row1=b.row1 and b.row2='xxx';   table1,table2 都是1E条记录级别的表.看了执行计划 有hash join.
然后查出来的结果是1条而select row1 from table2 where row2='xxx'然后 select * from table1 where row1 in (....) 出来的结果是100条...怎么才能解决这个问题
ps:table1是同义词..

解决方案 »

  1.   

    首先肯定 紀錄查詢的結果數量和表本身的大小及hash join沒有關係1.select *  from table1 a,table2 b where a.row1=b.row1 and b.row2='xxx'是在什麼環境下做的查詢
    2.你連接的是相同的用戶名及相同的數據庫嗎?
      

  2.   

    1. 查询是在windows环境的... 主机是aix系统
    2. table1是同义词 是别的库  .table2是本地表
      

  3.   

    是的...大师有msn不..加我可以不...msn上请教方便的..table1连的是别的库.不在同一台机器上..应该是压缩表..有访问权限的