:Introduction to Very Large Databases 读书笔记

Posted dingdingfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了:Introduction to Very Large Databases 读书笔记相关的知识,希望对你有一定的参考价值。

本文为Oracle 19c VLDB and Partitioning Guide第1章Introduction to Very Large Databases的读书笔记。

超大型数据库 (VLDB) 存在需要多种策略的管理挑战。 分区是 VLDB 策略的关键组成部分。

现代企业经常运行包含数百 GB 甚至数 TB 数据的任务关键型数据库。 这些企业受到超大型数据库 (VLDB) 的支持和维护要求的挑战,必须设计方法来应对这些挑战。

1.1 Introduction to Partitioning

分区通过将它们细分为更小和更易于管理的部分来为非常大的表和索引提供支持。

分区解决了支持非常大的表和索引的关键问题,方法是将它们分解成更小、更易于管理的分区,这些分区对应用程序完全透明。无需修改 SQL 查询和数据操作语言 (DML) 语句即可访问分区表。但是,定义分区后,数据定义语言 (DDL) 语句可以访问和操作单个分区,而不是整个表或索引。这就是分区如何简化大型数据库对象的可管理性。

表或索引的每个分区必须具有相同的逻辑属性,例如列名、数据类型和约束,但每个分区可以具有单独的物理属性,例如启用或禁用压缩、物理存储设置和表空间。

分区对于许多不同类型的应用程序很有用,尤其是管理大量数据的应用程序。 OLTP 系统通常受益于可管理性和可用性的改进,而数据仓库系统则受益于性能和可管理性

分区具有以下优点:

  • 它支持在分区级别而不是在整个表上进行数据加载、索引创建和重建以及备份和恢复等数据管理操作。这导致这些操作的时间大大减少。
  • 它提高了查询性能。通常可以通过访问分区的子集而不是整个表来获得查询的结果。对于某些查询,这种技术(称为分区修剪)可以提供数量级的性能提升。
  • 它显著减少了计划停机对维护操作的影响。
  • 分区维护操作的分区独立性允许您对同一表或索引的不同分区执行并发维护操作。您还可以对不受维护操作影响的分区运行并发 SELECT 和 DML 操作。
  • 如果将关键表和索引划分为分区以减少维护窗口、恢复时间和故障影响,则可以提高关键任务数据库的可用性。
  • 并行执行提供了优化资源利用和最小化执行时间的特定优势。查询以及 DML 和 DDL 支持并行执行。

以上几点的描述都将SELECT算作查询,而没有归入DML

分区可加快 Oracle 数据库中的数据访问。 无论数据库有 10 GB 还是 10 TB 的数据,分区都可以将数据访问提高几个数量级。 无需对应用程序进行任何修改即可实现分区。 例如,您可以将非分区表转换为分区表,而无需修改访问该表的任何 SELECT 语句或 DML 语句。 您无需重写应用程序代码即可利用分区。

如果是LINEORDER表,10GB约1亿行

1.2 VLDB and Partitioning

分区是管理超大型数据库 (VLDB) 的一种有价值的策略。

非常大的数据库没有最小绝对大小。尽管 VLDB 是一个类似于小型数据库的数据库,但在管理 VLDB 方面存在特定挑战。这些挑战与庞大的规模和针对这种规模的系统执行操作的成本效益有关。

有几个趋势是数据库规模稳步增长的原因:

  • 长期以来,系统都是孤立地开发的。公司已经开始看到结合这些系统以实现跨部门分析同时降低系统维护成本的好处。数据库和应用程序的整合是数据库规模持续增长的关键因素。
  • 许多公司面临着数据存储时间最短的规定。这些规定通常会导致更多数据被存储更长的时间。
  • 公司通过扩大销售和运营或通过并购实现增长,从而导致生成和处理的数据量增加。与此同时,依赖数据库进行日常活动的用户数量也在增加。

简而言之,数据整合,更长的数据保留期,公司和业务规模的扩大促进的数据的增长。

分区是管理超大型数据库的关键特性。 增长是对超大型数据库进行分区地址的基本挑战,并且分区支持一种分而治之的技术来管理数据库中的表和索引,尤其是随着这些表和索引的增长。 分区功能允许数据库针对非常大的数据集进行扩展,同时保持一致的性能,而不会过度增加管理或硬件资源。

1.3 Partitioning As the Foundation for Information Lifecycle Management

分区为信息生命周期管理 (ILM) 提供支持。

信息生命周期管理 (ILM) 是一组流程和策略,用于在数据的整个使用寿命期间对其进行管理。 ILM 策略的一个重要组成部分是确定在其生命周期中的任何时间点存储数据的最合适和最具成本效益的介质:日常操作中使用的更新数据存储在最快、最高度可用的存储层上,而不经常访问的旧数据可能存储在成本较低且效率较低的存储层上。较旧的数据也可能不那么频繁地更新,因此将数据压缩和存储为只读是有意义的。

Oracle 数据库为实施 ILM 解决方案提供了理想的环境。 Oracle 支持多个存储层,并且由于所有数据都保留在 Oracle 数据库中,因此多个存储层对应用程序是透明的,并且数据仍然是安全的。分区提供了使表中的数据能够存储在不同分区中的基本技术。

尽管多存储层和复杂的 ILM 策略最常出现在企业级系统中,但大多数公司和大多数数据库都需要某种程度的信息生命周期管理。最基本的 ILM 操作(归档旧数据以及从数据库中清除或删除该数据)在使用分区时可以快几个数量级。

1.4 Partitioning for All Databases

分区为大型和小型数据库提供了好处。

分区的好处不仅仅适用于非常大的数据库; 所有数据库,甚至是小型数据库,都可以从分区中受益。 即使是大小以兆字节为单位的数据库,也可以从分区中获得与最大的数 TB 系统相同类型的性能和可管理性优势。

以上是关于:Introduction to Very Large Databases 读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

:Introduction to Very Large Databases 读书笔记

Makefile introduction (very old presentation)

monitor weblogic server ,Very simple to use, weblogic监控巡检故障简单小工具

win 环境下报错 Namespace declaration statement has to be the very first

tomcat报错:This is very likely to create a memory leak问题解决

Namespace declaration statement has to be the very first statement in the script