[20160323]关于FULL_HASH_VALUE2.txt

简介: [20160323]关于FULL_HASH_VALUE2.txt --前一阵子firefox遇到问题,测试插件Calculate Hash.链接: http://blog.

[20160323]关于FULL_HASH_VALUE2.txt

--前一阵子firefox遇到问题,测试插件Calculate Hash.链接:
http://blog.itpub.net/267265/viewspace-2023144/

--实际上许多工具命令是相同的,linux下也有一个命令md5sum也可以拿来计算FULL_HASH_VALUE.测试看看:

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SCOTT@book> select * from dept where deptno=10;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK

--sql_id=4xamnunv51w9j

SCOTT@book> select sql_id,hash_value,sql_text from v$sql where sql_id='4xamnunv51w9j';
SQL_ID        HASH_VALUE SQL_TEXT
------------- ---------- ------------------------------------------------------------
4xamnunv51w9j  911274289 select * from dept where deptno=10

SCOTT@book>  select name,full_hash_value from V$DB_OBJECT_CACHE where hash_value=911274289 and rownum=1;
NAME                                     FULL_HASH_VALUE
---------------------------------------- --------------------------------
select * from dept where deptno=10       1431c45dbddbb9e74eaa74d53650f131

2.使用md5sum 命令看看.

--在使用前要注意几点
--1. oracle 的计算要在后面补充chr(0).
--2. 使用echo 缺省有一个回车在最后,要加入-n参数.不要输出尾部newline.

$ echo -n -e 'select * from dept where deptno=10\0000' | md5sum
5dc43114e7b9dbbdd574aa4e31f15036  -

-- 前面的blog已经提到,oracle计算出来的把顺序颠倒一些.例如后面8位31f15036,颠倒1下3650f131,正好复合.
5dc43114 e7b9dbbd d574aa4e 31f15036
颠倒
1431c45d bddbb9e7 4eaa74d5 3650f131

--这样正好与前面计算的1431c45dbddbb9e74eaa74d53650f131一样.

2.写一个脚本看看:
--注意:实际sql_id的计算,oracle对语句文本做"格式化"处理的,写这个脚本意义不大,权当作一次学习.对一些简单的语句还是有用的.
--参考链接:http://blog.itpub.net/267265/viewspace-1701985/  [20150616]关于sql_id.txt

$ cat aa.sh
#! /bin/bash
a=$(echo -n -e 'select * from dept where deptno=10''\0000' | md5sum| cut -f1 -d' ')
echo $a
b=${a: -8}
echo $b
c=$(echo "${b: -2:2}${b: -4:2}${b: -6:2}${b: -8:2}"| tr [a-f] [A-F])
echo $c
echo -e "ibase=16;hash_value=$c;print \"hash_value=\";hash_value;"| bc -l

$ . aa.sh
5dc43114e7b9dbbdd574aa4e31f15036
31f15036
3650F131
hash_value=911274289

目录
相关文章
|
算法 NoSQL Redis
APPEND key value
如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值(value)的结尾。 如果 key 不存在,那么它将首先创建一个空字符串的key,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。
1166 0
|
Oracle 关系型数据库 Perl
|
SQL Oracle 关系型数据库
[20171211]HASH GROUP BY ?354?.txt
[20171211]HASH GROUP BY not used when using more that 354 aggregate functions.txt --//http://msutic.
1241 0
|
SQL 关系型数据库 MySQL
|
SQL 索引
[20170402]函数索引standard_hash.txt
[20170402]函数索引standard_hash.txt --//这几天放假,在家里看书 --//这本书比较合适初学者,我以前看过第一版,所以这个版本看的很快.
1001 0
|
Perl SQL 关系型数据库
[20160919]Result cache问题.txt
[20160919]Result cache问题.txt --看了链接http://blog.dbi-services.com/result-cache-side-effects-on-number-of-calls/,重复测试: SCOTT@book> @ &r...
795 0
|
SQL 算法 Oracle
[20160302]关于FULL_HASH_VALUE.txt
[20160302]关于FULL_HASH_VALUE.txt --昨天想给firefox安装一个计算器插件,无意中发现Calculate Hash的插件: --它是基于文件来计算MD5,SHA1,理论讲这些算法是一样的,也可以用它来计算FULL_HASH_VALUE值。
901 0
|
Oracle 关系型数据库 索引
[20160118]提示index_join.txt
[20160118]提示index_join.txt --生产系统优化,遇到1例使用index_join提示的异常情况,通过例子来说明: 1.环境: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING               ...
925 0