首页 > 其他分享 >学习达梦hint注入笔记

学习达梦hint注入笔记

时间:2024-08-20 16:15:55浏览次数:6  
标签:hint 笔记 60 TEST SQL test id 达梦

1.创建表

drop table test;

SQL> create table test(id int,info varchar);
操作已执行

SQL> insert into test select level,'a' from dual connect by level <=10000;
影响行数 10000


SQL> create index idx_test_id on test(id);
操作已执行

SQL> stat 100 on test(id);
操作已执行

 

SQL> explain select * from test where id>1; --正常是走全表扫描
1 #NSET2: [1, 9999, 60]
2 #PRJT2: [1, 9999, 60]; exp_num(3), is_atom(FALSE)
3 #SLCT2: [1, 9999, 60]; TEST.ID > 1
4 #CSCN2: [1, 10000, 60]; INDEX33555470(TEST)

 

SQL> sp_set_para_value(1,'ENABLE_INJECT_HINT',1); --开启ENABLE_INJECT_HINT参数
DMSQL 过程已成功完成

编辑hint注入

SQL> SF_INJECT_HINT('select * from test where id>1;','INDEX(TEST,IDX_TEST_ID)','INJECT1','test injecting hint', TRUE,TRUE);指定该语句使用IDX_TEST_ID索引
DMSQL 过程已成功完成

SQL> explain select * from test where id>1; --再次查询走了索引
1 #NSET2: [10, 9999, 60]
2 #PRJT2: [10, 9999, 60]; exp_num(3), is_atom(FALSE)
3 #BLKUP2: [10, 9999, 60]; IDX_TEST_ID(TEST)
4 #SSEK2: [10, 9999, 60]; scan_type(ASC), IDX_TEST_ID(TEST), scan_range(1,max]

 

 

SELECT * from SYSINJECTHINT; ---查询hint注入
SF_DEINJECT_HINT('INJECT1'); ----删除hint 注入

 

 

 

应用中很多条件类型是?,这种也可以进行hint注入

SQL> SF_INJECT_HINT('* from test where id>?;','INDEX(TEST,IDX_TEST_ID)','INJECT2','test injecting hint', TRUE,TRUE);指定该语句使用IDX_TEST_ID索引
DMSQL 过程已成功完成

 

标签:hint,笔记,60,TEST,SQL,test,id,达梦
From: https://www.cnblogs.com/xuchuangye/p/18369603

相关文章

  • 树形 dp 做题笔记
    在这个随笔中,会有笔者的一些做题笔记,包括但不限于树形dp的思想、解题技巧、代码实现等。CF1926GVladandTroubleatMIT\(\texttt{*1900}\)。TAG:\(\texttt{树形dp}\)\(dp_{i,S,P}\)为\(i\)的子树内是否存在S和P的状态。转移方程为:当\(s_i\)为C时dp[x]......
  • THLM论文阅读笔记
    PretrainingLanguageModelswithText-AttributedHeterogeneousGraphs论文阅读笔记Abstract现存的问题:​ 目前语言模型(LM)的预训练任务主要集中在单独学习每个实体的文本信息,而忽略了捕捉TAHGs中实体间拓扑连接的关键环节。提出方法:​ 本文提出了一种新的LM预训练框架......
  • TCP 通信-Qt-思维导图-学习笔记
    TCP通信TCP简介TCP协议概述全称:TransmissionControlProtocol(传输控制协议)特性:面向连接、可靠、基于字节流的传输层通信协议TCP通信流程建立连接:TCP通信必须先建立连接通信端:分为客户端和服务端服务端操作监听端口:服务端监听某个端口,等待客户端连接......
  • 【生化代谢基础笔记】RNA 合成
    第一节原核生物转录的模板和酶⚠️RNA合成需要:DNATemplate,NTP,RNApol,其他蛋白质因子,$Mg^{2+}$一、原核生物转录模板模板链(Templatestrand)VS编码链(Codingstrand)模板链为合成模板另一股单链为编码链,mRNA碱基序列与编码链一致二、RNA聚合酶催化RNA的合成......
  • Java泛型大揭秘学习笔记
    泛型概述引入背景:Java泛型在JDK5中引入,目的是增强类型系统和表达能力。主要优势:类型安全:编译时类型检查,避免运行时错误。消除强制类型转换:简化代码,提高可读性。提高代码重用性:创建通用代码,适应不同场景。性能提升:减少自动装箱拆箱操作。泛型基础泛型定义:允许类型作......
  • Docker 入门文档阅读笔记
    Docker的架构图片来自Docker官网教程Docker采用CS架构,可以通过CLI和API与Dockerdaemon进行交互。DockerObjectsImages(镜像)Animageisaread-onlytemplatewithinstructionsforcreatingaDockercontainer.Often,animageisbasedonanotherima......
  • Python 面向对象(笔记)
    一、函数的概念函数用于在程序中分离不同的任务,是模块化程序设计的基本构成单位,是对程序逻辑进行结构化或过程化的一种编程方法函数定义好后,可以反复调用使用,这样就可以避免重复编写代码,而且,功能如果需要修改,只要更改函数定义就可以,维护方便1.1使用函数的优点 实现结......
  • CSS学习笔记
    CSS(CascadingStyleSheet)层叠级联样式表CSS:表现(美化网页)字体、颜色、边距、高度、宽度、背景图片、网页定位、网页浮动……建议HTML和CSS分开写 CSS的优势:内容和表现分离网页结构表现统一,可以实现复用样式十分丰富建议使用独立HTML的CSS文件利用SEO,容易被搜索引擎收......
  • LLM大语言模型学习笔记(2)
    一、RAG定义        大型语言模型(LLM)相较于传统的语言模型具有更强大的能力,然而在某些情况下,它们仍可能无法提供准确的答案。为了解决大型语言模型在生成文本时面临的一系列挑战,提高模型的性能和输出质量,研究人员提出了一种新的模型架构:检索增强生成(RAG,Retrieval-Au......
  • SpringBoot文档之Profiles的阅读笔记
    ReferenceCoreFeaturesProfiles类似Maven的Profile特性,限定配置项取值的生效场景。在代码中,对于使用注解@Component、@Configuration、@ConfigurationProperties标记的类,可以增加@Profile,限定前述类的生效场景。类似如下样例代码,当启动时指定Profile为production时生......