一个100万条记录表,目前查询速度过慢,让你给出5条优化措施

时间:2021-09-14 04:33:49
一个100万条记录表,目前查询速度过慢,让你给出5条优化措施??
面试的题目,请大家帮忙顶

12 个解决方案

#1


建索引、分页显示等。

#2


除了以上 的方案还有更好解决方案

#3


优化没有具体公式,只能根据具体情况来看,比如:取得记录数,记录数的字段是否可索引,条件是否可索引,是否存在查询关联等.当然可以从这几方面考虑:
1、减少碎片,重组表(导出导入可以解决);
2、为使查询走基于代价的优化器,需要分析表;
3、检查查询语句是否可索引,因为不是所有的字段索引化就会明显改善查询速度,这要看具体情况;
4、在有索引的情况下检查索引是否能被引用到;如果不能被引用到,可以考虑新建索引;
5、重建索引(rebuild)、分析索引等;
6、根据查询计划去分析当前的查询语句。

另外,在查询语句写的不是太糟糕的情况下,100万数据表一般可以通过建立合理的索引使查询更高效。

#4


那关于SGA的缓冲区分配不当,难道也不会引起性能减低吗>

#5


优化sql语句最终的效果一定要看执行计划。

#6


1如果有可能的话采用分区的方法,按年月或者地区将表拆分成多个小表,之后进行查询

2优化索引

3采用存储过程执行,因为已经在数据库上编译过,能相对快点

4,优化程序,java里面有批量处理一批相同类型sql的方法

基本上应该够了吧

#7


SGA的配置不当会引起数据库整体性能问题,人家问的是100万数据表的优化.

#8


才100w的数据 全部做全表搜索也不会慢
足够sga 和临时表空间 足够了。
实在不行 ,可以建下索引 和使用分区表,感觉大材小用。面试题才出100w的记录的题........晕

#9


mark

#10


要是我首先会检查表的hwm
然后检查freelist
当然了.如果是9i或者以上版本.我还会检查表和索引是否作过分析.
以及考虑是否需要做柱状图.
分区当然不可能是这么容易就让你做的.
因为这个需要涉及到与用户交涉.

当然内存参数肯定要设置到正常的.

当然索引是需要考虑的啦.建什么索引比较合适.哪些索引需要分析或者重建或者合并等等.

#11


100万条根本就不多,查询缓慢我看主要还是SQL语句需要优化,
另外如果该表不是经常UPdate之类的,需要建索引

#12


1.增加CPU和内存.

2.适当加大SGA

3.检查出bad SQL,也就是执行效率非常低下的,改写.

4.重新看执行计划, 根据执行计划确定下一步.

5. 根据上一步的情况定.

#1


建索引、分页显示等。

#2


除了以上 的方案还有更好解决方案

#3


优化没有具体公式,只能根据具体情况来看,比如:取得记录数,记录数的字段是否可索引,条件是否可索引,是否存在查询关联等.当然可以从这几方面考虑:
1、减少碎片,重组表(导出导入可以解决);
2、为使查询走基于代价的优化器,需要分析表;
3、检查查询语句是否可索引,因为不是所有的字段索引化就会明显改善查询速度,这要看具体情况;
4、在有索引的情况下检查索引是否能被引用到;如果不能被引用到,可以考虑新建索引;
5、重建索引(rebuild)、分析索引等;
6、根据查询计划去分析当前的查询语句。

另外,在查询语句写的不是太糟糕的情况下,100万数据表一般可以通过建立合理的索引使查询更高效。

#4


那关于SGA的缓冲区分配不当,难道也不会引起性能减低吗>

#5


优化sql语句最终的效果一定要看执行计划。

#6


1如果有可能的话采用分区的方法,按年月或者地区将表拆分成多个小表,之后进行查询

2优化索引

3采用存储过程执行,因为已经在数据库上编译过,能相对快点

4,优化程序,java里面有批量处理一批相同类型sql的方法

基本上应该够了吧

#7


SGA的配置不当会引起数据库整体性能问题,人家问的是100万数据表的优化.

#8


才100w的数据 全部做全表搜索也不会慢
足够sga 和临时表空间 足够了。
实在不行 ,可以建下索引 和使用分区表,感觉大材小用。面试题才出100w的记录的题........晕

#9


mark

#10


要是我首先会检查表的hwm
然后检查freelist
当然了.如果是9i或者以上版本.我还会检查表和索引是否作过分析.
以及考虑是否需要做柱状图.
分区当然不可能是这么容易就让你做的.
因为这个需要涉及到与用户交涉.

当然内存参数肯定要设置到正常的.

当然索引是需要考虑的啦.建什么索引比较合适.哪些索引需要分析或者重建或者合并等等.

#11


100万条根本就不多,查询缓慢我看主要还是SQL语句需要优化,
另外如果该表不是经常UPdate之类的,需要建索引

#12


1.增加CPU和内存.

2.适当加大SGA

3.检查出bad SQL,也就是执行效率非常低下的,改写.

4.重新看执行计划, 根据执行计划确定下一步.

5. 根据上一步的情况定.