Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在位图索引中执行查询需要更多时间_Sql_Oracle_Performance - Fatal编程技术网

Sql 在位图索引中执行查询需要更多时间

Sql 在位图索引中执行查询需要更多时间,sql,oracle,performance,Sql,Oracle,Performance,我的桌子有一百万条记录。我只想从表中获取非活动用户。查询执行时间超过10分钟。即使我是 使用索引。 STATUS只有两个值Y或N。因此,我为该列创建了位图索引 EXPLAIN PLAN FOR SELECT CUSTOMER NAME,MOBILE NUMBER,ACCOUNT NUMBER,CUSTOMER ID,REGISTARTION DATE from REGISTRATION where STATUS='N'; Plan hash value: 2615581521 -------

我的桌子有一百万条记录。我只想从表中获取非活动用户。查询执行时间超过10分钟。即使我是 使用索引。 STATUS只有两个值Y或N。因此,我为该列创建了位图索引

EXPLAIN PLAN FOR
SELECT CUSTOMER NAME,MOBILE NUMBER,ACCOUNT NUMBER,CUSTOMER ID,REGISTARTION DATE from REGISTRATION where STATUS='N';

Plan hash value: 2615581521

---------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                           | Name                      | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
---------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                           |   960K|    66M|  9880   (1)| 00:01:59 |       |       |
|   1 |  PARTITION RANGE ALL                |                           |   960K|    66M|  9880   (1)| 00:01:59 |     1 |1048575|
|   2 |   PARTITION HASH ALL                |                           |   960K|    66M|  9880   (1)| 00:01:59 |     1 |     4 |
|   3 |    TABLE ACCESS BY LOCAL INDEX ROWID| REGISTRATION              |   960K|    66M|  9880   (1)| 00:01:59 |     1 |1048575|
|   4 |     BITMAP CONVERSION TO ROWIDS     |                           |       |       |            |          |       |       |
|*  5 |      BITMAP INDEX SINGLE VALUE      | IDX_REGISTRATION_7        |       |       |            |          |     1 |1048575|
---------------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   5 - access("STATUS"='N')

Note
-----
   - dynamic sampling used for this statement (level=11)
-----------------------------------------------------------------------------------------------------------------------------------------------------

如何提高上述查询的性能?

索引上的统计信息是什么样子的?他们有柱状图吗?谢谢,@MAT我是甲骨文的新手。我对柱状图一无所知。我会检查并让您知道。看起来像是一个分区和子分区表,查询运行单线程(没有并行提示可见,或在计划中显示),通常单个位图索引是非常无用的。典型的用例是有几个位图索引-每一个都具有低基数,但是组合起来它们变得高度选择性。考虑两个分区,每个状态都有一个分区。你确定表只有100万个记录吗?或者这个查询只返回了更多记录中的一百万条?我有一种感觉,这是一个巨大的表-您可以使用
从dba_段中选择sum(bytes)/1024/1024/1024 gb来检查大小,其中segment_name='REGISTRATION'