楼主: jinaqu

[SQL] 【性能优化】分区表查询,怎样更快呢?

[复制链接]
论坛徽章:
3
优秀写手
日期:2014-11-11 06:00:15沸羊羊
日期:2015-03-04 14:55:412015年新春福章
日期:2015-03-06 11:59:47
31#
 楼主| 发表于 2015-1-5 09:55 | 只看该作者
1124739334 发表于 2015-1-5 09:33
麻烦把你的查询需求和原始查询语句贴一下,另外把表的索引信息贴一下看看

需求:
方案一、请对比双活数据中心表tmp的数量级是否一致

意思是统计表的总数是否一致,不一致再做其他操作,当然对比数量级直接对比最近一个分区的数量级是否一致就行

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2014-11-11 06:00:15沸羊羊
日期:2015-03-04 14:55:412015年新春福章
日期:2015-03-06 11:59:47
32#
 楼主| 发表于 2015-1-5 09:57 | 只看该作者
风铃中の鬼 发表于 2015-1-5 09:34
试试增加数据块的大小

哦???
block size能修改嘛,请问下怎么修改呢?求解,,,,

使用道具 举报

回复
求职 : 数据库开发
论坛徽章:
29
ITPUB学员
日期:2009-10-14 18:49:45至尊黑钻
日期:2015-12-31 11:11:56数据库板块每日发贴之星
日期:2009-10-22 01:01:02优秀写手
日期:2014-04-30 06:00:17ITPUB8周年纪念徽章
日期:2009-10-09 21:30:10秀才
日期:2017-05-17 11:39:09马上有车
日期:2014-10-09 10:14:53马上有钱
日期:2014-02-18 16:43:09路虎
日期:2013-10-15 15:38:59林肯
日期:2013-09-12 15:57:33
33#
发表于 2015-1-5 10:11 | 只看该作者
jinaqu 发表于 2015-1-5 09:57
哦???
block size能修改嘛,请问下怎么修改呢?求解,,,,

稍微说错了一点。。是修改一次IO读取的数据块个数有个db_file_multiblock_read_count参数,你们的DBA应该知道。。至于修改块大小可能不是容易的事情。需要重建表空间。估计你们的DBA不一定愿意。。

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
34#
发表于 2015-1-5 10:29 | 只看该作者
本帖最后由 1124739334 于 2015-1-5 11:24 编辑
jinaqu 发表于 2015-1-5 09:55
需求:
方案一、请对比双活数据中心表tmp的数量级是否一致

我个人有一个方案,你看其他坛友觉得怎么样:
1、如果是针对这张表,不加任何条件,可以用系统内置刷新统计信息的方法,此方法可以避免IO查询:

  1. BEGIN
  2.    DBMS_STATS.GATHER_TABLE_STATS(ownname => 'DB_TEST',
  3.                                  tabname => 'TMP',
  4.                                  estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
  5.                                  method_opt => 'for all columns size repeat',
  6.                                  degree => DBMS_STATS.AUTO_DEGREE,
  7.                                  granularity => 'ALL',
  8.                                  cascade=>TRUE
  9.                                  );
  10. END;
复制代码
然后:
  1. select table_name,num_rows from all_tables t where t.TABLE_NAME='TMP';
复制代码
针对不同的分区:
  1. select table_name,partition_name,num_rows from dba_tab_partitions t where t.table_name='TMP'
复制代码
希望能有所帮助,使用这个方法一定要刷新统计信息,若无刷新和查询字典表权限,与DBA协商,刷新权限不一定给你开,但可以根据你的要求实施,查询字典一般都是可以给你开查询权限的

使用道具 举报

回复
论坛徽章:
1
优秀写手
日期:2014-12-06 06:00:14
35#
发表于 2015-1-5 11:31 | 只看该作者
20亿的数据不太容易快,统计记录,要想办法修改下设计,个人觉得单独设计一个表,统计记录数,新增数据后,同步维护这个表的记录

使用道具 举报

回复
论坛徽章:
1
优秀写手
日期:2014-12-06 06:00:14
36#
发表于 2015-1-5 11:32 | 只看该作者
1124739334 发表于 2015-1-5 10:29
我个人有一个方案,你看其他坛友觉得怎么样:
1、如果是针对这张表,不加任何条件,可以用系统内置刷新统 ...

数据量太大,每次收集统计信息也很耗时吧

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
37#
发表于 2015-1-5 12:19 | 只看该作者
chengwanhe 发表于 2015-1-5 11:32
数据量太大,每次收集统计信息也很耗时吧

如果有时间的话,可以测试下两个方法的耗时,用传统的优化方法,如果该优化都优化到极点了,那就该想想有没有其他的方案,如果效率相差不大,那就算了,数据量大的问题,此方案需要与DBA协商评估,毕竟DBA经常干这种事情,相对于开发人员,他比较清楚的。

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2014-11-11 06:00:15沸羊羊
日期:2015-03-04 14:55:412015年新春福章
日期:2015-03-06 11:59:47
38#
 楼主| 发表于 2015-1-5 13:03 | 只看该作者
1124739334 发表于 2015-1-5 10:29
我个人有一个方案,你看其他坛友觉得怎么样:
1、如果是针对这张表,不加任何条件,可以用系统内置刷新统 ...

灰常感谢,我试试

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2014-11-11 06:00:15沸羊羊
日期:2015-03-04 14:55:412015年新春福章
日期:2015-03-06 11:59:47
39#
 楼主| 发表于 2015-1-5 13:05 | 只看该作者
chengwanhe 发表于 2015-1-5 11:31
20亿的数据不太容易快,统计记录,要想办法修改下设计,个人觉得单独设计一个表,统计记录数,新增数据后, ...

这个方案我之前想过,被否定了

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2014-11-11 06:00:15沸羊羊
日期:2015-03-04 14:55:412015年新春福章
日期:2015-03-06 11:59:47
40#
 楼主| 发表于 2015-1-5 13:05 | 只看该作者
1124739334 发表于 2015-1-5 12:19
如果有时间的话,可以测试下两个方法的耗时,用传统的优化方法,如果该优化都优化到极点了,那就该想想有 ...

嗯嗯,正在测试

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表