什么类型的索引最适合Oracle上的DATE类型?

sti*_*tic 3 oracle indexing clustered-index

根据您使用Oracle的经验,您将在DATE类型列上设置的索引的最佳类型和设置是什么?

  • 我不一定需要去分区索引.
  • 它是一种记录类表.
  • 你并不真正关心将唯一身份证作为主要密钥(事实上,日期在大多数情况下都足够接近独特,但由于它的性质,永远不会).

创建集群索引是否公平?

我感兴趣的是优化SELECT*FROM Log WHERE [Date]> '20 -06-2009'ORDER BY [Date] DESC等查询的执行,而不是大幅减慢插入速度.(顺便说一句,在现实世界中我会使用正确的TO_DATE语法来避免截断并丢失索引)

干杯,

Khb*_*Khb 6

常规指数应该做得很好.由于它是一个日志,因此新条目应始终具有增加的日期值,而不是过去的日期,这使得索引附加变得容易.插件不是一个大的减速.

如果您遇到上述问题,只考虑更复杂的指数.

问候K.


Dav*_*dge 5

常规的b树索引是合适的,但如果这是一个日期值越来越大的日志表,那么请注意索引块争用.如果您有很多会话将新值插入索引,并且这些值属于同一个块,那么您可能遇到性能问题.对此的一个缓解是反向键索引,但这会使您提供的类型的查询更加昂贵,因为反向键索引不能支持范围扫描.您将获得完整索引扫描或快速完整索引扫描.

它还会使索引更大,因为索引块拆分将是50/50,而不是Oracle在索引值中检测到向右增长模式时使用的90/10.