下面假设我们要在 EMP 表的 JOB 列上创建一个位图索引,如下:
SQL> create BITMAP index job_idx on emp(job);
Index created.
Oracle 在索引中存储的内容如表 11.-6 所示。
表 11.-6 Oracle 如何存储 JOB-IDX 位图索引
值/行 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
ANALYST |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
CLERK |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
MANAGER |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
PRESIDENT |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
SALESMAN |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
表
11.-6显示了第8、10和13行的值为ANALYST,而第4、6和7行的值为MANAGER。在此还显示了所有行都不为null(位图索引可以存储
null条目;如果索引中没有null条目,这说明表中没有null行)。如果我们想统计值为MANAGER的行数,位图索引就能很快地完成这个任务。如
果我们想找出JOB为CLERK或MANAGER的所有行,只需根据索引合并它们的位图,如表11.-7所示。
表 11.-7 位 OR 的表示
值/行 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
CLERK |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
MANAGER |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
CLERK或MANAGER |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
【上篇】LCA题目总结hdu 2586 How far away ?poj 1986 Distance Querieshdu 2874 Connections between citieszoj 3195 Design the cityhdu 3078 Networkpoj 2763 Housewife Windpoj 3694 Networkpoj 3417 Networkpoj 3728 The merchanthdu 3830 Checkers
【下篇】荒野的呼唤读后感300字 |