`
refurbish
  • 浏览: 27834 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

分区表和索引(4)

 
阅读更多
分区来提高性能
分区可以帮助你提高性能和可管理性。当由于以下这些原因而使用分区时一些主题必须要记住:
 分区栽剪
 分区智能连接
 并行 DML

分区栽剪
Oracle数据库服务器显示的识别分区和子分区。接着它标记了那些需要被SQL语句访问的分区和子分区和消除(栽剪)那些SQL语句不需要访问的分区和子分区。换而言之,分区栽剪是在一个查询中非必要索引和数据分区子分区的跳跃。

对于每个SQL语句,由所指定的选择条件决定消除非必要的分区或子分区。比如,如果一个查询只包含了三月份的销售数据,那就没必要查询剩余的十一个月份的数据。如此智能的栽剪可以显著减少数据量,从而在查询性能上得到了本质上的提升。

如果优化器确定已访问过的分区或子分区中的数据满足用于剪栽的选择条件,那它在估值期间从谓词列表(Where 子句)中删除这些条件以提高性能。可是,如果该SQL语句对分区列应用了一个函数(TO_DATE函数例外)时,优化器就不能栽剪分区。相似的,如果SQL语句对索引列应用了一个函数,那优化器就不能使用索引了,除非它是一个基于函数的索引。

在潜在的表的分区不能被消除时,剪栽也能消除索引分区,但这只有在索引和表在不同的列上分区时。你通常可以通过创建分区索引来减少你的SQL语句需要访问或修改的数据的数量以提高在大表上操作的性能。

等式,范围,LIKE和IN-LIST谓词被认为是使用RANGE和LIST分区的分区减栽。并且,等式和In-List被认为是使用HASH分区的分区剪栽。

分区剪栽的例子
我们具有一张称为CUST_ORDERS的分区表。对于CUST_ORDERS表的分区键是ORDER_DATE。让我们假设CUST_ORDERS具有六个月的数据,1月到6月,每个分区对应每个月的数据。如果以下的查询被运行:
SELECT SUM(value)
FROM cust_orders
WHERE order_date BETWEEN '28-MAR-98' AND '23-APR-98';

分区剪载通过以下其中一种被完成:

 首先,分区消除了1,2,5,6的数据分区:
接着
 要么,由高索引的选择性决定3月,4月数据分区的一个索引扫描。
 要么,由低索引的选择性决定3月,4月数据分区的一个全部扫描。
分区智能连接
分区智能连接是对于遵照连接列连接的两张分区表的一个连接优化。使用分区智能连接,连接操作被拆分成更小的按顺序或并行执行的连接。考虑智能连接的另一种方式是在数据分区时分区智能连接可以在并行连接执行期间,在并行处理器间最小化数据转换的数量。
See Also: Oracle Database Data Warehousing Guide for more
information about partitioning methods and partition-wise joins
并行DML
特别对于在决策支持系统和数据仓库中的大型数据库上的集中数据来说,并行执行显著减少了数据响应的时间。此外,对于传统的表,你可以对RANGE和HASH分区表使用并行查询和并行DML操作。通过这样做,你可以对增强批量操作的可扩展性和性能。

对于并行DML会话来说,语义和约束都是一样的,与是否使用索引组织表无关。

See Also: Oracle Database Data Warehousing Guide for more
information about parallel DML and its use with partitioned tables
分享到:
评论

相关推荐

    SQL Server 2005 中的分区表和索引

    ### SQL Server 2005 中的分区表和索引:深入解析 #### 分区的由来与演变 分区的概念在SQL Server的历史中占据着重要地位。从早期的SQL Server版本开始,数据库管理员就意识到,面对不断增长的数据量,传统的单一...

    MS SQL Server分区表、分区索引详解

    通过以上介绍可以看出,MS SQL Server 中的分区表和分区索引技术对于管理和提高大型数据库的性能至关重要。合理设计分区方案可以极大地提高查询效率和系统的可扩展性。通过对分区列、分区数的选择,以及对文件组的...

    Oracle 分区表 分区索引

    #### 四、创建分区表和索引 ##### 创建Range分区 ```sql CREATE TABLE sales ( sale_date DATE, amount NUMBER ) PARTITION BY RANGE (sale_date) ( PARTITION sales_q1_2020 VALUES LESS THAN (TO_DATE('2020-04...

    oracle分区表分区索引.docx

    Oracle 分区表分区索引是 Oracle 数据库中的一种重要机制,它可以提高数据的存储和查询效率。下面将详细介绍 Oracle 分区表分区索引的类型、分类、创建方法和维护方式。 一、分区表和分区索引的概念 分区表是指将...

    全面学习分区表及分区索引

    4. 兼容性和性能监控:不同的数据库管理系统对分区表和分区索引的支持程度不同,需要了解并评估其性能表现。 通过学习《三思笔记》中的全面学习分区表及分区索引,你可以深入了解这些概念,掌握如何在实际项目中...

    分区索引,本地索引,全局索引的区别

    在Oracle数据库中,分区索引是针对分区表的一种特殊索引类型,它可以显著提高对于大规模数据集的查询性能。根据索引是否与表的分区策略相匹配,分区索引可以分为两大类:本地索引(Local Index)和全局索引(Global ...

    Oracle分区表及分区索引

    Oracle 分区表及分区索引 Oracle 分区表是指将一个大表分割成多个小表,每个小表称为一个分区,分区表的...在选择分区表和分区索引时,需要根据实际情况选择合适的分区方式和索引类型,以提高查询性能和改善管理型。

    Oracle 分区表 分区索引 索引分区详解

    虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。

    oracel 分区表索引失效的问题

    ### Oracle 分区表索引失效的问题 #### 一、全局索引与分区表的关系 **全局索引**(Global Index)是指索引覆盖整个表的所有数据,而不受限于分区边界。这种类型的索引通常用于非分区列或者跨分区查询。 **实验...

    Oracle分区表和分区索引在VLDB中的研究.pdf

    4. 分区表和分区索引可以提高查询速度和数据库维护性能。 5. 分区表和分区索引可以应用于 VLDB、大数据存储、数据挖掘和商业智能等领域。 6. 分区表和分区索引可以提高数据分析和报表生成速度。 7. Oracle 分区表和...

    sqlserver2005 创建分区表 分区索引 注意事宜 分区索引

    分区表和分区索引是SQL Server 2005为企业级数据管理和性能优化提供的重要特性,尤其适用于处理大量数据的大型表。分区能够将数据划分为独立的、易于管理的块,这有助于提升查询性能,特别是在具有多种访问模式的...

    全面学习分区表及分区索引二

    全面学习分区表及分区索引二全面学习分区表及分区索引二

    深入学习分区表及分区索引(详解oracle分区).docx

    以下是对Oracle分区表和分区索引的深入解析: 1. **何时使用分区**: - 当表的数据量超过2GB时,分区有助于避免32位操作系统下的文件大小限制,同时减少大规模数据的备份时间。 - 对于包含历史数据的表,如按月份...

    [三思笔记]全面学习分区表及分区索引.pdf

    分区表和分区索引是数据库管理系统中的重要概念,它们对于大型数据存储的高效管理和查询具有至关重要的作用。本文将深入探讨这两个主题,帮助你更好地理解它们的原理、用途以及实际应用。 1. 分区表(Partitioning...

    SQL Server 2005 中的分区表和索引.doc

    SQL Server 2005 中的分区表和索引 SQL Server 2005 中的分区表和索引是改善大型表和具有各种访问模式的表的可伸缩性和可管理性的重要工具。分区可以将大型表分为更小、更容易管理的部分,提供一定的帮助。创建分区...

    MSSQLServer:分区表、分区索引详解[归类].pdf

    【MSSQL Server 分区表和分区索引详解】 在SQL Server中,分区表和分区索引是针对大型数据表的管理和性能优化策略。当面对数据量庞大的表时,使用分区能够提高数据处理效率,增强系统的可管理性。本文将详细讲解...

Global site tag (gtag.js) - Google Analytics