簡體   English   中英

Oracle 12c-對於具有分區和子分區的表,應使用哪個索引

[英]Oracle 12c - which index should be used for a table with partitions and sub-partitions

我在Oracle 12c中有一張500M記錄的表。 表按1個varchar列進行分區,並按其他varchar列進行子分區。

在Where子句中使用這兩列的查詢應使用哪些索引?

我假設本地分區索引是最佳選擇,但想了解何時出現這種情況以及如何最好地創建它們?

Oracle能夠進行分區修剪 ,這意味着,如果您的查詢在where子句中具有分區鍵列,則Oracle足夠聰明,只查詢相關的那些分區。 在這種情況下, 本地分區索引會更有利,因為它是“分區本地的”,即索引也以相同的方式分區,並且Oracle將只讀取與該分區相關的相關索引條目。

但是,如果查詢的where子句中沒有分區鍵列,那么Oracle將無法應用分區修剪,並且除了掃描所有本地分區索引 (最壞的情況是掃描整個表)之外別無選擇用於數據。 在這里,全局分區索引將在where子句中的那些列上派上用場。 在那種情況下,Oracle在分區中的這些列上創建索引,並確切知道要從哪些分區中讀取哪些記錄符合該語句的where子句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM