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

[20260120]关于sql_id没有那些字符.txt

[20260120]关于sql_id没有那些字符.txt

--//别人问的问题,sql_id是使用32进制,32进制仅仅需要10个数字+22个字母,这样有4个字符不会出现在sql_id中.

--//sql_id的计算是使用MD5算法进行哈希,生成一个128位的Hash Value,其中低32位作为HASH VALUE显示,SQL_ID则取了后64位。
--//实际上sql_id使用32进制表示,hash_value使用10进制表示。

--//最简单的方法执行如下:
SYS@book> with a as (select chr(level+96) txt from dual connect by level<=26)
select a.txt from a where not exists (select 1 from v$sqlarea where instr(sql_id,a.txt)>0);

TX
--
e
i
l
o

with a as (select chr(level+96) txt from dual connect by level<=26)
select txt from a
minus
select a.txt from a where exists (select 1 from v$sqlarea where instr(sql_id,a.txt)>0);

TX
--
e
l
o
i

--//可以推测ol与数字01太相近,比较容易混淆。一般编程都要求规避l,o作为变量.至于ei,估计也是一样的原因.
--//补充说明:
WITH a AS (    SELECT CHR (LEVEL + 96) txt FROM DUAL CONNECT BY LEVEL <= 26)
SELECT txt FROM a
MINUS
SELECT a.txt FROM a WHERE EXISTS (SELECT /*+ NO_UNNEST */ 1 FROM v$sqlarea WHERE INSTR (sql_id, a.txt) > 0);
--//开始以为第1种写法执行有点慢,实际的情况是第2种执行更慢。加入提示NO_UNNEST才快一些,真实的情况第1种写法最快。
--//更正以前我的理解not exist执行慢的情况,实际上前面的a表数据少是主要原因。

--//而且sql_id取64位,2^5表示1个32位,64/5=12.8(sql_id长度13个字符).剩下小于2^4表示sql_id第1个字符,最大编码1111(2进制)
--//对应32位编码是g,这样sql_id第1个字符不会大于'h'.
--//注意:e字符不在sql_id的32位进制编码中.

SYS@book> select sql_id from v$sqlarea where substr(sql_id,1,1)>='h';
no rows selected

--//通过bash shell分析:

$ cat aa2.txt
set head off feedback off
spool aa1.txt
select sql_id from v$sqlarea ;
spool off

@ aa2.txt
...

$ diff  <(echo {0..9} {a..z}| tr ' ' '\n') <(grep -P  -o '.' aa1.txt | sort | uniq )
15d14
< e
19d17
< i
22d19
< l
25d21
< o

$ diff <(echo {0..9} {a..z}| grep  -o '[0-9a-z]') <(grep   -o '.' aa1.txt | sort | uniq )
15d14
< e
19d17
< i
22d19
< l
25d21
< o

--//可以看出sql_id不包括eilo4个字符。
$ diff <(echo {0..9} {a..z}| grep  -o '[0-9a-z]') <(grep   -o '.' aa1.txt | sort | uniq )| grep  -o '\b[a-z]$'   | paste -sd' '
e i l o

http://www.jsqmd.com/news/280185/

相关文章:

  • 2026必备!本科生论文神器TOP10深度测评
  • 毕业论文救星:7款免费AI写论文工具实测,一键极速生成覆盖毕业/期刊/职称论文,查重率低原创高!
  • 2025.12.27 作业 - # P1311 [NOIP 2011 提高组] 选择客栈
  • 模拟费用流
  • 数据工程中的列式存储优化技巧
  • 大数据领域分布式存储的分布式区块链应用
  • npu_文生图片_Flux_dev
  • 端侧大模型部署实战:在手机上跑通70亿参数模型
  • 强烈安利!10款AI论文工具测评,研究生毕业论文必备
  • AI Agent智能办公助手:从ChatGPT到真正“干活“的系统
  • 零基础入门ESP32 AI开发:手把手教你实现大语言模型硬件应用
  • 博士学位论文《大田对靶施药除草机器人系统研究》系统性分析
  • Bright Data Web MCP深度测评:与Claude Code集成,企业级百万级数据采集实战
  • 无GPU算力也能做的大模型项目,助你轻松入行大厂_拿下大厂AI大模型offer的3个项目
  • 2025.12.27 作业 - # P7243 最大公约数
  • 2026年固定式机械臂厂家最新推荐:圆锥破碎固定式机械臂/圆锥破碎固定式破碎锤/振动筛专用固定式机械臂/振动筛专用固定式破碎/选择指南
  • 港仔机器人指挥控制系统数字孪生界面设计
  • chatwiki的邀请码
  • Servlet 生命周期详解 - 实践
  • 【剑斩OFFER】算法的暴力美学——力扣 127 题:单词接龙
  • 2026成都最新全包装修品牌top5评测!服务深度覆盖金牛区、新都区、青羊区、成华区等地优质公司权威榜单发布,赋能品质家居生活新体验
  • 鑫成誉-小黄鸭电动车小程序界面设计
  • 循环神经网络与注意力机制
  • 论 qys
  • 大模型学习宝典:10个Agent实战项目+90天系统学习路径,助你轻松拿下AI产品经理面试
  • 【故障诊断】动态系统的故障诊断和容错控制研究附Matlab代码
  • error: no matching function for call to ros::NodeHandle::param()
  • 导师严选9个AI论文网站,MBA论文写作必备!
  • 蓝凌EKP产品:关联机制浅析
  • 【故障诊断】基于WMSST结合MCNN-BiGRU-Attention的故障诊断研究附Matlab代码