创建索引以降低数据库中的成本?

时间:2017-03-10 00:51:15

标签: sql oracle stored-procedures

我必须将查询迁移到存储过程,并且我得到TAF(表访问完全),我想创建索引以获得更好的性能,我接下来:

CREATE INDEX MY_INDEX2 ON OWNER.TABLE_NAME(FIELD);

然后我接下来:

INDEX_NAME      UNIQUE  LOGGING DEGREE  COLUM_NAME  ORDER   POSITION    INDEX_OWNER
MY_INDEX        Y       NO      1       MY_FIELD    Asc     1           MY_OWNER
MY_INDEX2       N       YES     1       MY_FIELD1   Asc     1           MY_OWNER

知道如何将MY_INDEX2的位置更改为2?

我的MY_INDEX2有多好? 例如,添加不同的顺序并使用位图索引。

任何解释我是什么意味着学位?

谢谢!

1 个答案:

答案 0 :(得分:1)

回答您的具体问题......

  

知道如何将MY_INDEX2的位置更改为2?

指数没有头寸。但是,索引中的列有一个位置。在单列索引中,它将是位置1.对于复合索引,position表示索引中列的顺序。

  

我的MY_INDEX2有多好?例如,添加不同的顺序和使用   位图索引。

您的绩效指数有多好?它可能不会更好。这一切都取决于您的数据和数据模型。检查你的解释计划。创建新索引。重新检查您的解释计划。还有更多,但从那开始。仅在数据未发生变化的数据仓库/报告环境中使用位图索引。

  

任何解释我是什么意味着学位?

您可以为索引指定一定程度的并行度。 1的等级相当于NOPARALLEL。保持NOPARALLEL,直到你理解数据库中的并行性。