[20180507]FBI Limitation.txt
[20180507]FBI Limitation.txt
--//重複測試:
1.環境:
SCOTT@book> @ 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
2.建立測試資料:
CREATE PUBLIC DATABASE LINK LOOPBACK USING 'localhost:1521/book:DEDICATED';
create table t1
segment creation immediate
nologging
as
with generator as (
select
rownum id
from dual
connect by
level <= 1e4 -- > comment to avoid WordPress format issue
)
select
rownum id,
rownum n1,
lpad(rownum,10,'0') v1,
lpad('x',100,'x') padding
from
generator v1,
generator v2
where
rownum <= 1e6 -- > comment to avoid WordPress format issue
;
create table t2
nologging
as
select * from t1
;
alter table t1 add constraint t1_pk primary key(id);
alter table t2 add constraint t2_pk primary key(id);
create unique index t2_f1 on t2(id+1);
begin
dbms_stats.gather_table_stats(
ownname => user,
tabname => 'T1',
cascade => true,
method_opt => 'for all columns size 1'
);
dbms_stats.gather_table_stats(
ownname => user,
tabname => 'T2',
cascade => true,
method_opt => 'for all columns size 1'
);
end;
/
3.測試:
set serveroutput off
select
t1.v1, t2.v1
from
t1,
t2
-- t2@orcl@loopback
where
t2.id+1 = t1.id
and t1.n1 between 101 and 110
;
select * from table(dbms_xplan.display_cursor);
--//執行計劃如下:
Plan hash value: 1798294492
---------------------------------------------------------------------------------------
| Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 4915 (100)| |
| 1 | NESTED LOOPS | | 11 | 407 | 4915 (1)| 00:00:59 |
|* 2 | TABLE ACCESS FULL | T1 | 11 | 231 | 4893 (1)| 00:00:59 |
| 3 | TABLE ACCESS BY INDEX ROWID| T2 | 1 | 16 | 2 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | T2_F1 | 1 | | 1 (0)| 00:00:01 |
---------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1
2 - SEL$1 / T1@SEL$1
3 - SEL$1 / T2@SEL$1
4 - SEL$1 / T2@SEL$1
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter(("T1"."N1"<=110 AND "T1"."N1">=101))
4 - access("T2"."SYS_NC00005$"="T1"."ID")
--//透過dblink呢?
select
t1.v1, t2.v1
from
t1,
-- t2
t2@loopback
where
t2.id+1 = t1.id
and t1.n1 between 101 and 110
;
select * from table(dbms_xplan.display_cursor);
--//執行計劃如下:
Plan hash value: 1770389500
-----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | E-Rows |E-Bytes| Cost (%CPU)| E-Time | Inst |IN-OUT| OMem | 1Mem | Used-Mem |
-----------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 8029 (100)| | | | | | |
|* 1 | HASH JOIN | | 11 | 506 | 8029 (1)| 00:01:37 | | | 1483K| 1483K| 1277K (0)|
|* 2 | TABLE ACCESS FULL| T1 | 11 | 231 | 4893 (1)| 00:00:59 | | | | | |
| 3 | REMOTE | T2 | 1000K| 23M| 3133 (1)| 00:00:38 | LOOPB~ | R->S | | | |
-----------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1
2 - SEL$1 / T1@SEL$1
3 - SEL$1 / T2@SEL$1
Predicate Information (identified by operation id):
---------------------------------------------------
1 - access("T1"."ID"="T2"."ID"+1)
2 - filter(("T1"."N1"<=110 AND "T1"."N1">=101))
Remote SQL Information (identified by operation id):
----------------------------------------------------
3 - SELECT "ID","V1" FROM "T2" "T2" (accessing 'LOOPBACK' )
--//可以發現無法使用函式索引.
4.如何保證能使用函式索引呢?
BEGIN
SYS.DBMS_STATS.GATHER_TABLE_STATS (
OwnName => 'SCOTT'
,TabName => 'T2'
,Estimate_Percent => SYS.DBMS_STATS.AUTO_SAMPLE_SIZE
,Method_Opt => 'FOR ALL HIDDEN COLUMNS SIZE REPEAT '
,Degree => 4
,Cascade => TRUE
,No_Invalidate => FALSE
,Force => TRUE);
END;
/
select t1.v1, t2.v1 from t1,t2@loopback where t2.id+1 = t1.id and t1.n1 between 101 and 110;
--//不行.不知道有什麼方法使用函式索引...
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2153884/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20201110]FBI Bug reprise.txt
- 洛谷P1087 FBI樹
- 你有被FBI警告過嗎?
- FBI:2021年網路犯罪報告
- FBI:2017年網路犯罪報告
- FBI針對HTTPS網路釣魚釋出警告HTTP
- FBI承認:未獲授權購買居民位置資料
- Swatting攻擊!智慧裝置被黑客用來惡搞FBI黑客
- Mirai 殭屍網路作者與 FBI 合作而避免刑期AI
- 出來混遲早要還 FBI通緝5名在逃黑客黑客
- 安全快報 | 美國FBI提醒公眾警惕Karakurt勒索軟體攻擊
- FBI網站被黑 黑客獲取100萬條聯邦特工身份資訊網站黑客
- FBI破解iPhone的漏洞被堵了!蘋果說要對抗黑客入侵iPhone蘋果黑客
- FBI:BEC詐騙2018年至2021年已盜取430億美元資金
- 俄羅斯35歲黑客被美國FBI逮捕,面臨5年監禁黑客
- FBI 為糟糕密碼使用者支招:可使用簡單的長密碼密碼
- FBI 全新 IDLE 專案通過“虛假資料”幫助公司欺騙黑客黑客
- NSA和FBI聯合曝光俄羅斯開發的Linux惡意程式DrovorubLinux
- 安全快報 | FBI警告!美國52個關鍵基礎設施已被入侵
- FBI年度報告:2020網路犯罪損失金額超過40億美元
- FBI稱俄羅斯黑客入侵50多國數以十萬計路由器黑客路由器
- FBI介入調查!美國國會議員及其家人敏感資訊遭兜售
- FBI認為史上最大加密貨幣盜竊案是朝鮮黑客所為加密黑客
- 北大高材生割美國韭菜被FBI通緝?本人回應予以否認
- FBI:2020年網路犯罪損失金額達42億美元 同比增長20%
- FBI取締DDoS服務網站之後 此類攻擊規模降低85%網站
- 站長被FBI逮捕,最為流行的資料洩露論壇宣佈關閉
- FBI:Hive勒索軟體團伙在過去一年勒索得利1億美元Hive
- 孫宇晨已闢謠!孫宇晨回應被FBI調查:這是誹謗
- 俄羅斯駭客組織KillNet聲稱盜取了美國FBI上萬特工資料
- FBI 數萬名特工資訊遭披露,英美法多國情報機構均受影響
- FBI:2021年1-7月美國“殺豬盤”經濟損失約為 1.33 億美元
- FBI 反對之下,蘋果放棄了端到端加密 iCloud 備份資料的計劃蘋果加密Cloud
- FBI要求美國大學監視華人學者遭曝光,哥大校長:我們不會配合
- 又是弱密碼的鍋,近10TB的商業檔案被竊,或與FBI有關密碼
- 一年損失24億美元,FBI“鷹掃行動”抓捕65名電信詐騙嫌疑人
- FBI:2021年技術支援詐騙損失金額超過3.47億美元 為有史以來最高
- 資深媒體人:我不關注孫宇晨,但你得清楚WTO、IRS、FBI、SEC是幹嘛的