很着急的问题,希望大家能帮助

[复制链接]
查看11 | 回复6 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
TTMCLTPROMPTDETAIL 有记录30多万条,其他的很少,用一下的句子查询,SELECT A.SerialNo,A.BSTYPE,A.BUSINESSDATE FROM TTMCLTPROMPTDETAIL A WHERE A.CLIENTID in(SELECT clientid from TBMBRKCLIENT where BROKERID=0000000006) order by A.SerialNo
这句话如果我不用order by速度很快,如果我只select serialno速度也很快,SerialNo是关键字而且唯一.
这个库是别人建的所以结构不是太清楚,我增大了sort_area_size 也不行,我想增加临时表的空间,可是不太熟悉库,
我怎么才能知道库里的临时表的名字,或者我重建临时表可以吗?
能不能告诉我关于临时表的具体操作,谢谢.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
我真的很着急!麻烦了
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
order by A.SerialNo 如果该字段上有索引 速度会快
通过 alter session set sort_area_size 可以增加session 内存的排序区大小
临时表空间的语法到google上搜一下吧
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
TTMCLTPROMPTDETAIL 有记录30多万条,其他的很少,用一下的句子查询,SELECT A.SerialNo,A.BSTYPE,A.BUSINESSDATE FROM TTMCLTPROMPTDETAIL A WHERE A.CLIENTID in(SELECT clientid from TBMBRKCLIENT where BROKERID=0000000006) order by A.SerialNo

這樣不是很好嗎?
SELECT A.SerialNo,A.BSTYPE,A.BUSINESSDATE FROM TTMCLTPROMPTDETAIL A,TBMBRKCLIENT B
WHERE A.CLIENTID=B.CLIENTID AND B.BROKERID=
0000000006 order by A.SerialNo
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
in
如果用的不好會很慢的
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
A.SerialNo 是主键,order by 时应该会使用index fast full scan的,我以前也遇到过这种问题
希望对sql语句性能调整有经验的DX对该sql性能的调整给出好的方法
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
再看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行