准备环境: 1、修改配置文件添加预加载项 cd /kingbase/data vim kingbase.conf 最后一行添加: shared_preload_libraries = 'sys_hint_plan' 2、重启数据库 Sys_ctl restart -D /kingbase/data restart 3、创建扩展 ksql -Usystem -d test Password for user system: 输入密码:123456 create extension sys_hint_plan; Hint用法: 1、强制在扫描时使用Seqscan (1)建表,插入数据 CREATE TABLE hint1 (id int PRIMARY KEY, val int); CREATE TABLE hint2 (id int PRIMARY KEY, val int); INSERT INTO hint1 SELECT i, i % 100 FROM (SELECT generate_series(1, 10000) i) t; INSERT INTO hint2 SELECT i, i % 10 FROM (SELECT generate_series(1, 1000) i) t; (2)执行计划 /*+SeqScan(hint1) SeqScan(hint2) */ EXPLAIN analyse SELECT * FROM hint1, hint2 WHERE hint1.id = hint2.id; 2、强制在连接时使用MergeJoin (1)建表,插入数据 CREATE TABLE hint3 (id int PRIMARY KEY, val int); CREATE TABLE hint4 (id int PRIMARY KEY, val int); INSERT INTO hint3 SELECT i, i FROM (SELECT generate_series(1, 100) i) t; INSERT INTO hint4 SELECT i, i FROM (SELECT generate_series(1, 10) i) t; (2)执行计划 /*+MergeJoin(hint4 hint1 hint2 hint3)*/ EXPLAIN analyse SELECT * FROM hint1, hint2, hint3, hint4 WHERE hint1.id = hint2.id AND hint1.id = hint3.id AND hint1.id = hint4.id; |
金仓R6hint使用
最新推荐文章于 2024-09-27 11:30:45 发布