国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Oracle - bitmap 索引和 B-tree 索引在使用中如何選擇

bitmap 索引和 B-tree 索引在使用中如何選擇

2019-11-12 17:18數(shù)據(jù)庫教程網(wǎng) Oracle

現(xiàn)在,我們知道優(yōu)化器如何對這些技術(shù)做出反應(yīng),清楚地說明 bitmap 索引和 B-tree 索引各自的最好應(yīng)用

現(xiàn)在,我們知道優(yōu)化器如何對這些技術(shù)做出反應(yīng),清楚地說明 bitmap 索引B-tree 索引各自的最好應(yīng)用。 
在 GENDER 列適當(dāng)?shù)貛б粋€(gè) bitmap 索引,在 SAL 列上創(chuàng)建另外一個(gè)位圖索引,然后執(zhí)行一些查詢。在這些列上,用 B-tree 索引重新執(zhí)行查詢。 
從 TEST_NORMAL 表,查詢工資為如下的男員工: 
1000 
1500 
2000 
2500 
3000 
3500 
4000 
4500 
因此: 
SQL> select * from test_normal 
2 where sal in (1000,1500,2000,2500,3000,3500,4000,4500,5000) and GENDER='M'; 
已選擇444行。 

執(zhí)行計(jì)劃 
---------------------------------------------------------- 
Plan hash value: 4115571900 
-------------------------------------------------------------------------------------------------- 
| Id | Operation | Name | Rows | Bytes | Cost(%CPU)| Time | 
-------------------------------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT | | 1 | 39 | 1 (0)| 00:00:01 | 
|* 1 | TABLE ACCESS BY INDEX ROWID | TEST_NORMAL | 1 | 39 | 1 (0)| 00:00:01 | 
| 2 | BITMAP CONVERSION TO ROWIDS| | | | | | 
|* 3 | BITMAP INDEX SINGLE VALUE | NORMAL_GENDER_BMX | | | | | 
-------------------------------------------------------------------------------------------------- 
Predicate Information (identified by operation id): 
--------------------------------------------------- 
1 - filter("SAL"=1000 OR "SAL"=1500 OR "SAL"=2000 OR "SAL"=2500 OR "SAL"=3000 
OR 
"SAL"=3500 OR "SAL"=4000 OR "SAL"=4500 OR "SAL"=5000) 
3 - access("GENDER"='M') 

統(tǒng)計(jì)信息 
---------------------------------------------------------- 
0 recursive calls 
0 db block gets 
6280 consistent gets 
0 physical reads 
0 redo size 
25451 bytes sent via SQL*Net to client 
839 bytes received via SQL*Net from client 
31 SQL*Net roundtrips to/from client 
0 sorts (memory) 
0 sorts (disk) 
444 rows processed 
SQL> 
這是一個(gè)典型的數(shù)據(jù)倉庫查詢,不要再 OLTP(On-Line Transaction Processing,聯(lián)機(jī)事務(wù)處理系統(tǒng))系統(tǒng)上執(zhí)行。下面是 bitmap 索引的結(jié)果: 
而 B-tree 索引的查詢: 
SQL> select * from test_normal 
2 where sal in (1000,1500,2000,2500,3000,3500,4000,4500,5000) and GENDER='M'; 

已選擇444行。 

執(zhí)行計(jì)劃 
---------------------------------------------------------- 
Plan hash value: 654360527 
------------------------------------------------------------------------------------------------- 
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | 
------------------------------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT | | 1 | 39 | 2 (0)| 00:00:01 | 
|* 1 | TABLE ACCESS BY INDEX ROWID| TEST_NORMAL | 1 | 39 | 2 (0)| 00:00:01 | 
|* 2 | INDEX RANGE SCAN | NORMAL_GENDER_IDX | 1 | | 2 (0)| 00:00:01 | 
------------------------------------------------------------------------------------------------- 
Predicate Information (identified by operation id): 
--------------------------------------------------- 
1 - filter("SAL"=1000 OR "SAL"=1500 OR "SAL"=2000 OR "SAL"=2500 OR "SAL"=3000 
OR 
"SAL"=3500 OR "SAL"=4000 OR "SAL"=4500 OR "SAL"=5000) 
2 - access("GENDER"='M') 

統(tǒng)計(jì)信息 
---------------------------------------------------------- 
0 recursive calls 
0 db block gets 
6854 consistent gets 
0 physical reads 
0 redo size 
25451 bytes sent via SQL*Net to client 
839 bytes received via SQL*Net from client 
31 SQL*Net roundtrips to/from client 
0 sorts (memory) 
0 sorts (disk) 
444 rows processed 
SQL> 
對 B-tree 索引,優(yōu)化器選擇了全表掃描,而在 bitmap 索引的情況下,使用了索引。可以通過 IO 推斷出性能。 
一般,bitmap 索引對 DSS 最合適,而不管基數(shù)怎么樣,原因如下: 

對于 bitmap 索引,優(yōu)化器可能高效低相應(yīng)包含 AND、OR 或 XOR 的查詢。(Oracle 支持動(dòng)態(tài)的 B-tree 到 bitmap 轉(zhuǎn)換,但是效率不是很高。 
對 bitmap 索引,當(dāng)查詢或計(jì)數(shù) null 時(shí),優(yōu)化器會(huì)響應(yīng)查詢。null 值也被 bitmap 索引索引(這不同于 B-tree 索引)。 

更重要的是,DSS 系統(tǒng)的 bitmap 索引支持 ad hoc 查詢,而 B-tree 索引則不。更特別地,如果你有帶 50 列的一個(gè)表,而用戶頻繁查詢它們中的 10 個(gè)——或所有 10 個(gè)列的組合,或一個(gè)列——創(chuàng)建 B-tree 索引將會(huì)很困難。如果你在這些所有的列上創(chuàng)建 10 個(gè) bitmap 索引,那么所有的查詢都會(huì)被這些索引響應(yīng),而不論是在 10 個(gè)列上查詢,還是 4、6 個(gè)列,或只一個(gè)列。AND_EQUAL 優(yōu)化器提示為 B-tree 索引提供這個(gè)功能,但是不能超過 5 個(gè)索引。bitmap 索引就沒有這個(gè)限制。 

相比之下,B-tree 索引很適合 OLTP 應(yīng)用程序,這樣的系統(tǒng)用戶查詢比較常規(guī)(在部署前,可以調(diào)整),與 ad hoc 查詢相對,它不是很頻繁,在飛業(yè)務(wù)高峰時(shí)間執(zhí)行。因?yàn)椋琌LTP 系統(tǒng)經(jīng)常更新和刪除,所以,在這種情況下,bitmap 索引可以導(dǎo)致一個(gè)嚴(yán)重的鎖問題。 

這里的數(shù)據(jù)是很明顯。兩個(gè)索引目標(biāo)相同:盡可能快地返回結(jié)果。但選擇使用哪個(gè)完全取決于應(yīng)用的類型,而不是基數(shù)的水平。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线中文字幕视频 | 欧美中文在线 | 国产一区视频在线看 | 一级大片一级一大片 | 国产精品2区 | 国产深夜视频在线观看 | 免费看国产片在线观看 | 久久久www成人免费无遮挡大片 | 黄色小视频免费 | 国产欧美精品区一区二区三区 | 国产综合久久 | av电影一区二区 | 国产精品久久久久久久久久久新郎 | 欧美与黑人午夜性猛交久久久 | 欧美一级特黄aaaaaaa在线观看 | 成人片在线播放 | www国产亚洲精品久久网站 | 综合色导航 | 91精品国产一区二区三区免费 | 国产日韩欧美在线观看 | 午夜激情影院 | 亚洲午夜激情 | 日本三级韩国三级三级a级中文 | 久久成人免费视频 | 欧美一区二区在线播放 | 免费在线观看黄色 | 欧美久久免费 | 国产高清在线a视频大全 | 337p日本粉嫩噜噜噜 | 精品亚洲一区二区三区 | 欧美日韩视频一区二区 | 成人黄色免费在线视频 | 久久aⅴ乱码一区二区三区 一区二区精品视频 | 日韩久色 | 日韩精品久久久久久 | 亚洲一区二区 | 成人精品久久久 | 午夜在线 | 99看片网| 久久色视频 | 激情一级 |