当前位置: 首页 > news >正文

南宁网站建设 醉懂网络吉林最新消息今天新增

南宁网站建设 醉懂网络,吉林最新消息今天新增,wordpress图片生成插件,网站百度屏蔽关键词在过去的一些项目中#xff0c;我们发现对于标量子查询带limit或者rownum的情况下#xff0c;Oracle的性能非常高效#xff0c;而MogDB的性能似乎差强人意#xff0c;那么如果在使用MogDB的过程中遇到了这样的场景#xff0c;该如何进行优化呢#xff1f; 这里我们来给大… 在过去的一些项目中我们发现对于标量子查询带limit或者rownum的情况下Oracle的性能非常高效而MogDB的性能似乎差强人意那么如果在使用MogDB的过程中遇到了这样的场景该如何进行优化呢 这里我们来给大家分享一些优化方法。 首先来看看Oracle的情况 这里我们先模拟构造一些数据用来测试验证. create table test02 as select * from dba_objects;create table test01 as select * from test02;insert into test01 select * from test01;insert into test01 select * from test01;insert into test01 select * from test01;commit;insert into test01 select * from test01;insert into test01 select * from test01;insert into test01 select * from test01;commit;insert into test01 select * from test01;insert into test01 select * from test01;insert into test01 select * from test01;commit;create index idx_test01_owner on test01(owner); 数据构造完毕之后我们来看看Oracle 11g中该测试SQL的执行计划如何。 SQL select count(1) from test01;  COUNT(1)----------  22858240Elapsed: 00:00:03.75SQL select count(1) from test02;  COUNT(1)----------     89290Elapsed: 00:00:00.07SQL SQL SELECT object_id, t1.owner,  2    (SELECT t2.object_name  3     FROM test01 t2  4     WHERE t1.owner  t2.owner  5       AND rownum  1)  6  FROM test02 t1  7  WHERE rownum  10; OBJECT_ID OWNER                          (SELECTT2.OBJECT_NAMEFROMTEST01T2WHERET1.OWNERT2.OWNERANDRO---------- ------------------------------ ------------------------------------------------------------        20 SYS                            ICOL$        46 SYS                            ICOL$        28 SYS                            ICOL$        15 SYS                            ICOL$        29 SYS                            ICOL$         3 SYS                            ICOL$        25 SYS                            ICOL$        41 SYS                            ICOL$        54 SYS                            ICOL$        40 SYS                            ICOL$10 rows selected.Elapsed: 00:00:00.01Execution Plan----------------------------------------------------------Plan hash value: 1781923309-------------------------------------------------------------------------------------------------| Id  | Operation                    | Name             | Rows  | Bytes | Cost (%CPU)| Time     |-------------------------------------------------------------------------------------------------|   0 | SELECT STATEMENT             |                  |    10 |   300 |     2   (0)| 00:00:01 ||*  1 |  COUNT STOPKEY               |                  |       |       |            |          ||   2 |   TABLE ACCESS BY INDEX ROWID| TEST01           |   250K|    19M|     4   (0)| 00:00:01 ||*  3 |    INDEX RANGE SCAN          | IDX_TEST01_OWNER |   100K|       |     3   (0)| 00:00:01 ||*  4 |  COUNT STOPKEY               |                  |       |       |            |          ||   5 |   TABLE ACCESS FULL          | TEST02           | 81940 |  2400K|     2   (0)| 00:00:01 |-------------------------------------------------------------------------------------------------Predicate Information (identified by operation id):---------------------------------------------------   1 - filter(ROWNUM1)   3 - access(T2.OWNER:B1)   4 - filter(ROWNUM10)Note-----   - dynamic sampling used for this statement (level2)Statistics----------------------------------------------------------          0  recursive calls          0  db block gets          9  consistent gets         12  physical reads          0  redo size        862  bytes sent via SQL*Net to client        523  bytes received via SQL*Net from client          2  SQL*Net roundtrips to/from client          0  sorts (memory)          0  sorts (disk)         10  rows processedSQL  可以看到在Oracle 中该SQL执行效率非常高效毫秒级返回结果。然后在早期的MogDB版本中处理该SQL性能并不高高效会走bitmap index scan。 首先我们通过mtk迁移工具将该2个表测试数据迁移到mogdb中然后测试验证一把。 至于迁移步骤这里我就不在提了大家可以参考之前的文章。 MogDB 验证 这里我使用了MogDB 5.0.5版本。废话不多说直接上测试过程。 [ommmogdb1 ~]$ gsql -r -d test -UrogerPassword for user roger: gsql ((MogDB 5.0.5 build b77f1a82) compiled at 2023-12-08 03:11:47 commit 0 last mr 1804 )Non-SSL connection (SSL connection is recommended when requiring high-security)Type help for help.test \timing onTiming is on.test test    SELECT object_id, t1.owner,test-   (SELECT t2.object_nametest(    FROM test01 t2test(    WHERE t1.owner  t2.ownertest(      AND rownum  1)test- FROM test02 t1test- WHERE rownum  10; object_id | owner | object_name -------------------------------        20 | SYS   | ICOL$        46 | SYS   | ICOL$        28 | SYS   | ICOL$        15 | SYS   | ICOL$        29 | SYS   | ICOL$         3 | SYS   | ICOL$        25 | SYS   | ICOL$        41 | SYS   | ICOL$        54 | SYS   | ICOL$        40 | SYS   | ICOL$(10 rows)Time: 18472.299 mstest test  explain test- SELECT object_id, t1.owner,test-   (SELECT t2.object_nametest(    FROM test01 t2test(    WHERE t1.owner  t2.ownertest(      AND rownum  1)test- FROM test02 t1test- WHERE rownum  10;                                                 QUERY PLAN                                                 ------------------------------------------------------------------------------------------------------------ Limit  (cost0.00..179830.95 rows10 width11)   -  Seq Scan on test02 t1  (cost0.00..1605908407.74 rows89301 width11)         SubPlan 1           -  Limit  (cost17982.47..17983.07 rows1 width24)                 -  Bitmap Heap Scan on test01 t2  (cost17982.47..591299.40 rows952544 width24)                       Recheck Cond: ((t1.owner)::text  (owner)::text)                       -  Bitmap Index Scan on idx_test01_owner  (cost0.00..17744.33 rows952544 width0)                             Index Cond: ((t1.owner)::text  (owner)::text)(8 rows)Time: 1.544 mstest test select t2.object_name from test01 t2 where SYS  t2.owner and rownum  1; object_name ------------- ICOL$(1 row)Time: 1.496 mstest explain select t2.object_name from test01 t2 where SYS  t2.owner and rownum  1;                                QUERY PLAN                                 --------------------------------------------------------------------------- Limit  (cost0.00..0.07 rows1 width24)   -  Seq Scan on test01 t2  (cost0.00..687643.20 rows9726617 width24)         Filter: (SYS::text  (owner)::text)(3 rows)Time: 1.292 mstest  从第一次执行的情况来看该SQL需要10多秒简直是比Oracle慢太多了无法仍受。实际上我们分析上述的执行计划可以看到主要慢在了bitmap scan上了。 这里我们暂时用hint禁用该功能。 test SELECT /* set(enable_bitmapscan off) */ object_id, t1.owner,test-   (SELECT t2.object_nametest(    FROM test01 t2test(    WHERE t1.owner  t2.ownertest(      AND rownum  1)test- FROM test02 t1test- WHERE rownum  10; object_id | owner | object_name -------------------------------        20 | SYS   | ICOL$        46 | SYS   | ICOL$        28 | SYS   | ICOL$        15 | SYS   | ICOL$        29 | SYS   | ICOL$         3 | SYS   | ICOL$        25 | SYS   | ICOL$        41 | SYS   | ICOL$        54 | SYS   | ICOL$        40 | SYS   | ICOL$(10 rows)Time: 3.367 mstest explain SELECT /* set(enable_bitmapscan off) */ object_id, t1.owner,test-   (SELECT t2.object_nametest(    FROM test01 t2test(    WHERE t1.owner  t2.ownertest(      AND rownum  1)test- FROM test02 t1test- WHERE rownum  10;                                       QUERY PLAN                                       ---------------------------------------------------------------------------------------- Limit  (cost0.00..7.49 rows10 width11)   -  Seq Scan on test02 t1  (cost0.00..66929.56 rows89301 width11)         SubPlan 1           -  Limit  (cost0.00..0.72 rows1 width24)                 -  Seq Scan on test01 t2  (cost0.00..687643.20 rows952544 width24)                       Filter: ((t1.owner)::text  (owner)::text)(6 rows)Time: 1.467 mstest  我们可以看到此时执行计划正常了快如闪电了。 在6月30号即将发布的新版本中SQL引擎就具备该能力不再需要人工干预了。 本文由 mdnice 多平台发布
http://www.zqtcl.cn/news/18975/

相关文章:

  • 宜城网站建设哪家好龙岗区建设局网站
  • 莲湖区建设局网站怎么样免费建网站
  • 购物网站html模板下载华为弹性云做网站
  • 备案ip 查询网站贵州便宜网站推广优化电话
  • PHP网站开发有哪些框架2023年最新科技成果
  • 汽车网站模版上海网站建设千元漂亮
  • 高校思政教育工作网站建设宁波建设网站公司推荐
  • 怎么寻求网站建设微信公众平台推广
  • 专门做头像的网站香河住房和城乡建设局网站
  • 河北网站备案注销电子商城网站建设的实训内容记述
  • 网站做seo需要大量文章给六人游做网站开发的
  • 网站产品优化方案app推广拉新一手渠道代理
  • 做网站是什么职业宿迁网站制作
  • 专业的营销型网站公司提供手机自适应网站建设
  • 网站建设 大公司排名旅游网站官网
  • 苏州网站建设排名东莞能做网站的公司
  • 永久个人网站高级感ppt模板
  • 2019年怎么做网站层次化网络设计的优点是什么
  • 门户网站快速制作网站产品链接怎么做的
  • 怎么买网站空间淮南做网站推广
  • 页面设计方案网站优化工具分析工具
  • 宁波网站建设地方虚拟技术对网站建设维护的影响
  • 开发手机网站教程面料做电商 哪个网站好
  • 福建巢网站建设代理网络阅卷
  • 如何用电脑做网站学院网站规划方案
  • 网站开发前景知乎市场营销案例150例
  • 毕业设计代做的网站好做网站广告词
  • windows2008 iis网站 指定域名宁波人流
  • 郑州便宜网站建设360建筑网官网查询
  • 哪个装修公司比较好seo顾问赚钱吗