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

网站ico图标放在哪里网站制作是怎样做的

网站ico图标放在哪里,网站制作是怎样做的,凡客诚品为什么失败,wordpress防机人注册1 背景由于业务数据的变化或者数据库版本的升级,可能导致SQL的执行计划发生变化,这种变化不一定是正收益,这时需 要一个防止计划劣化的机制。该机制需适用于版本升级时固化计划防止计划跳变等场景。2 SPM 的功能SPM(SQL Plan Manager)功能&a…

1 背景

由于业务数据的变化或者数据库版本的升级,可能导致SQL的执行计划发生变化,这种变化不一定正收益,这时需 要一个防止计划劣化的机制。该机制需适用于版本升级时固化计划防止计划跳变等场景。

2  SPM 的功能

SPM(SQL Plan Manager)

功能:固化计划防止计划跳变,影响业务性能。

 计划捕获:SPM能将一个具体SQL的执行计划落盘,称之为Plan baseline(计划基线) 

 计划选择:SPM会判断是否将优化器给出的执行计划交给执行器执行,选择优化器给出的执行计划,还是SPM存储的计划。

 计划演进:SPM能将优化器新产生的计划进行判断,如果断优秀会标记(ACC&UNACC)以备计划选择使用。

3 SPM示例

步骤1:数据准备

csdn=> DROP TABLE IF EXISTS tb_a;
DROP TABLE
csdn=> CREATE TABLE tb_a (id int, c1 int, c2 int, pad text);
CREATE TABLE
csdn=> CREATE INDEX tb_a_idx_c1 ON tb_a (c1);
CREATE INDEX
csdn=> INSERT INTO tb_a select  id,  (random()*200)::int,(random()*10000)::int, 'ss'  FROM  (SELECT generate_series(1,10000)  id) tb_a;
INSERT 0 10000
csdn=> ANALYZE tb_a;
ANALYZE
csdn=>

步骤2:参数设置


csdn=> SET spm_enable_plan_capture=manual;   -- 开启SPM计划选择
SET
csdn=> SET spm_enable_plan_selection=on;   -- 当前SPM只支持gplan,确保生成的计划是gplan
SET
csdn=> SET plan_cache_mode = 'force_generic_plan'; -- 在pretty模式可以看到baseline的使用情况
SET
csdn=>
csdn=> SET explain_perf_mode=pretty;  --设置Oracle查看计划显示格风
SET
csdn=>

步骤3:计划捕获

-- 捕获tablescan,确保捕获tablescan计划
csdn=> SET enable_seqscan=on;   
SET
csdn=>
csdn=> SET enable_indexscan=off;
SET
csdn=> SET enable_bitmapscan=off;
SET
csdn=>
-- 执行测试sql
csdn=> PREPARE spm_query AS SELECT * FROM tb_a WHERE c1 = $1;
PREPARE
csdn=> EXPLAIN(costs off) EXECUTE spm_query (1);id |      operation
----+----------------------1 | ->  Seq Scan on tb_a
(1 row)Predicate Information (identified by plan id)
-----------------------------------------------1 --Seq Scan on tb_aFilter: (c1 = $1)
(2 rows)csdn=>csdn=> SELECT sql_hash, plan_hash, outline, status, gplan FROM gs_spm_sql_baseline WHERE sql_text  LIKE '%tb_a WHERE c1 = $1%';sql_hash  | plan_hash |                outline                 | status | gplan
------------+-----------+----------------------------------------+--------+-------1850279601 | 154472964 |  begin_outline_data                   +| ACC    | t|           |  TableScan(@"sel$1" csdn.tb_a@"sel$1")+|        ||           |  version("1.0.0")                     +|        ||           |  end_outline_data                      |        |
(1 row)csdn=>

步骤4:计划选择

csdn=> SET enable_bitmapscan=on;  -- 确保优化器生成的计划是bitmapscan
SET
csdn=> SET enable_seqscan=off;
SET
csdn=>  SET enable_indexscan=off;
SET
-- 执行SQL
csdn=> DEALLOCATE spm_query;
DEALLOCATE
csdn=> PREPARE spm_query AS SELECT *  FROM tb_a WHERE c1 = $1;
PREPARE
csdn=> SET plan_cache_mode = 'force_generic_plan';   --强制走软解析
SET
csdn=> show plan_cache_mode;plan_cache_mode
--------------------force_generic_plan
(1 row)csdn=> EXPLAIN(costs off) EXECUTE spm_query (1);id |                 operation
----+--------------------------------------------1 | ->  Bitmap Heap Scan on tb_a2 |    ->  Bitmap Index Scan using tb_a_idx_c1
(2 rows)Predicate Information (identified by plan id)
-----------------------------------------------1 --Bitmap Heap Scan on tb_aRecheck Cond: (c1 = $1)2 --Bitmap Index Scan using tb_a_idx_c1Index Cond: (c1 = $1)
(4 rows)====== Query Others =====
----------------------------------------------------------------use_baseline: Yes, sql_hash: 3237163112, plan_hash: 2994191517--查看现有计划
csdn=>  SELECT sql_hash, plan_hash, outline, status, gplan, cost
csdn->  FROM gs_spm_sql_baseline
csdn->  WHERE sql_text like '%tb_a WHERE c1 = $1%'
csdn->  ORDER  BY creation_time;sql_hash  | plan_hash  |                       outline                       | status | gplan |  cost
------------+------------+-----------------------------------------------------+--------+-------+--------1850279601 |  154472964 |  begin_outline_data                                +| ACC    | t     |    166|            |  TableScan(@"sel$1" csdn.tb_a@"sel$1")             +|        |       ||            |  version("1.0.0")                                  +|        |       ||            |  end_outline_data                                   |        |       |3237163112 | 2994191517 |  begin_outline_data                                +| ACC    | t     | 48.451|            |  BitmapScan(@"sel$1" csdn.tb_a@"sel$1" tb_a_idx_c1)+|        |       ||            |  version("1.0.0")                                  +|        |       ||            |  end_outline_data                                   |        |       |
(2 rows)csdn=>

注:从查看现有的计划,cost成本为48.451是正能量,对应的sql_hash、plan_hash分别为:

3237163112、 2994191517

步骤5:计划演进

我理解为将最优的计划打上ACC标签,不优的计划打上UNACC即可。

-- 使用spm 计划演进
csdn=>  SELECT * FROM dbe_sql_util.gs_spm_evolute_plan(3237163112,2994191517);evolute_status
----------------t
(1 row)csdn=>  SELECT sql_hash, plan_hash, better,  refer_plan, reason  FROM gs_spm_sql_evolution WHERE sql_hash=3237163112;sql_hash  | plan_hash  | better | refer_plan |                          reason
------------+------------+--------+------------+-----------------------------------------------------------3237163112 | 2994191517 | f      |          0 | execution time is more than 10% greater than the baseline-- 根据演进结论修改seqscan计划状态为UNACC
csdn=> SELECT * FROM dbe_sql_util.gs_spm_set_plan_status (1850279601,154472964,'UNACC');gs_spm_set_plan_status
------------------------t
(1 row)csdn=>
--查看UNACC
csdn=>  SELECT sql_hash, plan_hash, outline, status, gplan, costFROM gs_spm_sql_baselineWHERE sql_text like '%tb_a WHERE c1 = $1%'ORDER  BY creation_time;sql_hash  | plan_hash  |                       outline                       | status | gplan |  cost
------------+------------+-----------------------------------------------------+--------+-------+--------1850279601 |  154472964 |  begin_outline_data                                +| UNACC  | t     |    166|            |  TableScan(@"sel$1" csdn.tb_a@"sel$1")             +|        |       ||            |  version("1.0.0")                                  +|        |       ||            |  end_outline_data                                   |        |       |3237163112 | 2994191517 |  begin_outline_data                                +| ACC    | t     | 48.451|            |  BitmapScan(@"sel$1" csdn.tb_a@"sel$1" tb_a_idx_c1)+|        |       ||            |  version("1.0.0")                                  +|        |       ||            |  end_outline_data                                   |        |       |
(2 rows)csdn=>

步骤6:计划演证

csdn=> SET enable_seqscan=on;
SET
csdn=> SET enable_indexscan=on;
SET
csdn=> SET plan_cache_mode = 'force_generic_plan';
SET
csdn=> SET explain_perf_mode=pretty;
SET
csdn=> DEALLOCATE spm_query;
DEALLOCATE
csdn=> PREPARE spm_query AS SELECT * FROM tb_a WHERE c1 = $1;
PREPARE
csdn=> EXPLAIN(costs off) EXECUTE spm_query (1);id |                 operation
----+--------------------------------------------1 | ->  Bitmap Heap Scan on tb_a2 |    ->  Bitmap Index Scan using tb_a_idx_c1
(2 rows)Predicate Information (identified by plan id)
-----------------------------------------------1 --Bitmap Heap Scan on tb_aRecheck Cond: (c1 = $1)2 --Bitmap Index Scan using tb_a_idx_c1Index Cond: (c1 = $1)
(4 rows)

4 批注

SPM主要是为要防止因为业务数据变化或版本升级引起的SQL计划跳变而影响业务性能。

http://www.dtcms.com/a/526390.html

相关文章:

  • 网站制作哪里好网站建设要什么
  • Wordpress验证登陆函数作品提示优化要删吗
  • 自己做的网站怎样让百度搜到php的网站怎么做的
  • 做网站怎么接私活WordPress设置两个域名
  • C++ 智能指针的使用及其原理
  • 张家港网站制作服务天元建设集团有限公司济南第六建筑工程公司
  • 信息网站方案百度做免费推广的步骤
  • 做网站和软件哪个挣钱公司装修费用如何入账
  • 建个外国网站公司网站建设开发维护工作
  • 网站设计怎么做图片透明度西安网站建设发布
  • php零基础做网站南通模板建站多少钱
  • 企业网站建设实例中国能源建设集团有限公司董事长
  • 网站短链接怎么做的青海网站开发建设
  • 苏州 网站的公司哪家好网站目录遍历
  • 网站转wordpress网站备案号码
  • 做软装什么网站可以吗代写软文费用全网天下实惠
  • 企业网站推广方案范例网页制作公司
  • node 后端服务 PM2 相关命令
  • 郑州企业建站公司定制网站域名区别吗
  • 有哪些档案网站网络推广培训哪个好
  • 二级医院做网站建设网站注意实现
  • 杭州模板网站好wordpress 卡顿
  • 鲜花网站模板下载网站建设注册名有规范吗
  • java循环结构
  • 长汀网站建设如何建造企业网站
  • 存储器速度对比
  • intitle 律师网站建设的重要性庆阳网站优化公司
  • 河南省住房与城乡建设部网站印度做网站
  • 怎么做网站源代码如何快速推广一个新产品
  • 【11408学习记录】考研数学重点突破:概率论核心概念(性质+7大公式)