[20180625]函式與標量子查詢13(補充)
[20180625]函式與標量子查詢13(補充).txt
--//最近一段時間一直在測試標量子查詢視buckets的數量,我前面的測試方法純粹蠻力測試.
--//參考連結:http://blog.itpub.net/267265/viewspace-2156082/
1.環境:
SYS@test> @ &r/ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx 10.2.0.4.0 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
grant execute on sys.dbms_lock to scott;
CREATE OR REPLACE FUNCTION sleep1 (seconds IN NUMBER)
RETURN NUMBER
is
d_date date;
BEGIN
select sysdate into d_date from dual;
sys.dbms_lock.sleep(seconds/10);
RETURN seconds;
END;
/
CREATE OR REPLACE FUNCTION sleep (seconds IN NUMBER)
RETURN NUMBER
is
d_date date;
BEGIN
select sysdate into d_date from dual;
--//sys.dbms_lock.sleep(0.01);
RETURN seconds;
END;
/
create table t as select rownum id1,mod(rownum-1,10000)+1 id2 from dual connect by level<=20000;
--//分析表略. 前面測試level<=40000;實際上level<=20000足夠了.
2.測試:
--//我前面測試生成的指令碼太不好了.
set term off
exec :x := 1;
select t.*,(select sleep(id2) from dual) s from t where id2<=:x;
set term on
--//我開始以為這樣spool不會輸出執行結果,實際上還是寫入spool指定的檔案導致生成的檔案很大.
--//我後來修改如下.
--//建立指令碼by.txt:
set term off
alter session set statistics_level=all;
variable x number;
exec :x := &&1;
select t.*,(select sleep(id2) from dual) s from t where id2<=:x;
set term on
@ &r/dpc '' ''
quit
--//建立shell指令碼by.sh:
#! /bin/bash
# rm -f ez.txt
for i in $(seq 10000)
do
echo $i
sqlplus -s -l scott/book @by.txt $i >> ez.txt
done
--//這樣執行指令碼就ok了.其他步驟略.
--//實際上這樣不斷呼叫sqlplus也就是要不斷的登陸與退出,我的測試還是有點慢.
--//再修改如下:
--//建立指令碼by1.txt:
set term off
exec :x := &&1;
select t.*,(select sleep(id2) from dual) s from t where id2<=:x;
set term on
@ &r/dpc '' ''
--//建立by2.txt指令碼
--//$ seq 10000 | xargs -I{} echo @by1.txt {} > by2.txt
--//這步可以省略.
--//建立shell指令碼by1.sh:
#! /bin/bash
sqlplus -s -l scott/book <<EOF >> ez.txt
alter session set statistics_level=all;
variable x number;
$(seq 10000 | xargs -I{} echo @by1.txt {})
quit
EOF
--//其中`cat by2.txt`也可以寫成$(cat by2.txt).
3.順便補充一下生成文字可以跳過中間檔案生成直接執行如下:
#$ egrep 'FAST DUAL' ez.txt | cut -f5 -d"|" > e2.txt
#$ egrep 'SELECT STATEMENT' ez.txt | cut -f10 -d"|" > e3.txt
#$ paste e2.txt e3.txt -d"," > e4.txt
$ paste <(egrep 'FAST DUAL' ez.txt | cut -f5 -d"|") <(egrep 'SELECT STATEMENT' ez.txt | cut -f10 -d"|" ) -d","
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2156594/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20180626]函式與標量子查詢14.txt函式
- [20180612]函式與標量子查詢10.txt函式
- [20180611]函式與標量子查詢9.txt函式
- [20180607]函式與標量子查詢8.txt函式
- [20180602]函式與標量子查詢4.txt函式
- [20180602]函式與標量子查詢3.txt函式
- 20180601]函式與標量子查詢2.txt函式
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- [20200325]慎用標量子查詢.txt
- MYSQL學習筆記25: 多表查詢(子查詢)[標量子查詢,列子查詢]MySql筆記
- MYSQL count標量子查詢改left joinMySql
- [20211220]關於標量子查詢問題.txt
- Oracle常用抓取SQL-標量子查詢等OracleSQL
- pytest標記:查詢測試策略、標記測試函式函式
- mysql 標量子查詢和現金盤程式製作非法子查詢MySql
- [20211214]18c標量子查詢unnest.txt
- Solr複雜查詢一:函式查詢Solr函式
- [C#.NET 拾遺補漏]13:動態構建LINQ查詢表示式C#
- 影響Oracle標量子查詢效能的三個因素Oracle
- PostgreSQL 查詢替換函式SQL函式
- 【TUNE_ORACLE】列出有標量子查詢的SQL參考OracleSQL
- [20220309]查詢x$ksmmem遇到的疑問補充.txt
- [20180625]10g下查詢條件rownum = 0.txt
- Python補充03 Python內建函式清單Python函式
- SQL查詢中用到的函式SQL函式
- Java-MySql-函式、多表查詢JavaMySql函式
- GreatSQL 最佳化技巧:將 MINUS 改寫為標量子查詢SQL
- [20210202]計算標量子查詢快取數量2.txt快取
- 二分查詢 - 手寫模板與自帶函式函式
- Vlookup大叔與一對多查詢(Excel函式集團)Excel函式
- webgl內建函式--向量函式與紋理查詢函式Web函式
- Linq查詢語法與擴充方法
- 6-13 函式指標(理科實驗班)函式指標
- [20210201]19c計算標量子查詢快取數量.txt快取
- C++中函式指標與函式物件C++函式指標物件
- c++字串查詢函式實現C++字串函式
- 二分查詢(函式實現)函式
- 二分查詢函式的使用函式