加大缓冲池大小,或者表空间大小试一下
解决方案 »
- 如何用遍历表机构形成树ztree
- 在<jsp:include>里面添加action路径
- js如何把用户输入的值放进hidden里
- 关于远程服务器的问题
- IntelliJ 9,我新建web项目,界面出现这个提示怎么解决"artifact 'test' has invalid extension"
- JSP连接数据出错.请看看
- session问题
- 请精通selenium的人提问:如何获得用showModelessDialog弹出窗口中的元素
- 一个中文问题(高分发放)
- 请教:ArrayList is not synchronized but Vector is 是什么意思
- 在servlet中使用ArrayList,如何在JSP中取得其值?
- 菜鸟提问:struts的初级问题,请各位帮忙!
2、可以用数据库的跟踪器查看查询时瓶颈在哪个表上,然后优化索引。
3、尽量少用关联
4、尽量把这段逻辑写道一个存储过程里。
还有就是 你也可以从你的SQL语句本身入手:
在写SQL语句的时候我们尽量避免多表的关联查询,因为关系数据在处理多表的关联查询的时候是对表求广义笛卡儿集,假如有三个表每个表的记录都是10万以上 如果你SQL语句写成这样
select * from t1,t1,t3 where + 你的条件
那么在执行过程中数据库在求广义笛卡儿集时,会生成100000*100000*100000条的临时记录,然后才会根据后面的WHERE条件来选择
所以我们应该是数据库避免这样求广义笛卡儿集,而是数据库选择记录后在求广义笛卡儿集,这样速度会成指数被的提高
比如上面那个例子可写成嵌套试SQL:select * form t1 where in (select * from t2 where in (select * from t3)) and 条件
这样写后假如每个表符合条件的记录为1000 那么结果广义笛卡儿集中生成的记录将大大减少