我是甲骨文·埃萨达的新手。我的问题是,在中索引还是不索引
找到了一些博客,上面写着“不索引数据库索引”和“临时存储索引”,但没有Oracle的官方文档,其中说在Exadata中不进行索引。
如果我在Exadata中索引,问题是什么?(因为它是在内存概念中实现的),它会改善还是降低性能?如果已经创建了索引,那么删除索引更好吗?
我们拥有超过1500万的海量数据,并且在使用Varchars、CLOBS和其他常见数据类型的Oracle中不断增长。除了主键之外,没有创建任何索引。为什么查询要花费10到12分钟(从1500万条记录到简单的select查询,很少有地方条件)来执行?甲骨文说,Exadata是地球上最快的数据库。
发布于 2018-02-02 03:10:33
指数的决定与平台无关。它始终是相同的过程,即:
拥有索引的利益大于拥有索引的成本。
成本
好处
Exadata中索引可能较少的原因是,如果其他机制(存储索引、压缩、闪存等)能够为您提供满足业务需求的响应时间,那么您就可以省去那些索引的缺点。
但决策过程仍然是相同的-成本与效益。
评估现有指标的一种常见方法是使其不可见,并查看是否存在不利(或有益)影响。这样,如果您必须恢复并保留索引,那么这样做是没有代价的。
发布于 2018-02-02 04:02:07
除了Connor的答案之外,请注意索引并不总是访问数据的最佳方式。即使在非Exadata存储系统中也是如此。是否使用索引的过程和考虑事项独立于Exadata;Exadata所做的是给出更多不使用索引的理由/功能。
发布于 2018-08-23 18:22:27
oaktable的文章(在前面的注释中显示)说明了为什么在exadata中总是没有索引更好。下面Oracle的说明解释了原因。在非exadata中,哑存储返回块(通常为8k)不是行,因此对于大型表,FTS几乎总是一件坏事(除非需要大多数行)。Exadata拥有智能存储,它包含来自查询的信息,并试图消除不回答查询的字节。它只返回可能回答查询的字节(而不是块)。此操作将I/O降低到DB进行处理。这样的话,FTS就不是那么糟糕了,而且实际上可能是首选的。作为一个DBA,我有一个带有12 to的DB,而且很多时候我不得不使用一个NO_INDEX提示来改进查询。这违反了正常的建模理论。从磁盘中检索数据是DB中最慢的过程。Exadata在进程的早期(存储级别)删除不需要的数据,并减少发送回DB进行处理的数据量。很多时候,我在80亿行表上的FTS比使用索引时快得多.(仅在Exadata中;)
http://www.oracle.com/technetwork/testcontent/o31exadata-354069.html
https://stackoverflow.com/questions/48574098
复制相似问题