Informix 11.70系统管理: 空间管理(下)
授予或撤销碎片的权限 如果您希望授予有用的碎片权限,您必须有一种战略来控制数据分布。一种有效的战略是按表达式来将数据记录碎片化。但是,round-robin 数据记录分布战略没有用,因为每个新数据记录都会被添加到下一个碎片中。round-robin 分布会清空任何
授予或撤销碎片的权限
如果您希望授予有用的碎片权限,您必须有一种战略来控制数据分布。一种有效的战略是按表达式来将数据记录碎片化。但是,round-robin 数据记录分布战略没有用,因为每个新数据记录都会被添加到下一个碎片中。round-robin 分布会清空任何跟踪数据分布的任何干净方法,进而消除对碎片授权的真正使用。出于基于表达式分布和 round-robin 分布之间的这一区别,GRANT FRAGMENT 和 REVOKE FRAGMENT 语句仅适用于具有基于表达式碎片的表。
当创建碎片表时,不存在默认的碎片授权。使用 GRANT FRAGMENT 语句在一个或多个碎片上授予插入、更新和删除权限。如果希望同时授予所有 3 种权限,可使用 GRANT FRAGMENT 语句的 ALL 关键字。请记住,不能仅通过命名包含碎片的表来授予碎片权限。您必须命名特定的语句。
当您希望撤销插入、更新或删除权限时,可以使用 REVOKE FRAGMENT 语句。此语句会撤销一个或多个用户针对碎片表的一个或多个碎片的权限。如果希望撤销一个表中当前存在的所有权限,可使用 ALL 关键字。如果不在命令中指定任何碎片,撤销的权限将适用于表中当前拥有该权限的所有碎片。
附加或分离碎片
您可以使用 ALTER FRAGMENT ATTACH 和 DETACH 语句来执行碎片操作。ALTER FRAGMENT ATTACH 提供了一种方式来组合两个未碎片化的表或向碎片表中添加碎片。ALTER FRAGMENT DETACH 提供了一种方式来删除一个碎片表的碎片。
ATTACH
使用 ALTER FRAGMENT ON TABLE 语句的 ATTACH 子句来将具有相同结构的表组合到一个碎片战略中。该子句还提供了一种方式,通过利用碎片技术来将大量数据增量地加载到一个现有的表中。
您附加的任何表都必须已在独立的分区中创建。不能多次附加同一个表。ATTACH 子句中列出的所有使用表必须具有与幸存的表相同的结构。列的数量、名称、数据类型和相对位置必须相同。
用户定义的例程以及对一个 ROW 类型列的字段的引用是无效的。不能将一个碎片表附加到另一个碎片表。
所有存储碎片的 dbspace 都必须具有相同的页面大小。
在两个未碎片化的表上执行 ATTACH 操作不能生成一个按间隔或按列表碎片化的幸存表。(如果希望附加两个未碎片化的表,您可使用 ALTER FRAGMENT 语句的 INIT 选项来为一个未碎片化的表定义中间隔或列表碎片模式,然后使用 ATTACH 选项将第二个表附加到它。)
对于按间隔碎片化的幸存表,具有以下限制:
- 因为确定了碎片的顺序位置,所以 BEFORE 和 AFTER 规范无效。
- 不能附加其表达式与现有的间隔碎片表达式相匹配的碎片。
- 在附加超过过渡值的碎片时,正附加碎片的上限必须与一个间隔碎片边界保持一致。也就是说,碎片的上限必须等于过渡值加上间隔值的一个整数倍数。
对于由安全策略保护的碎片表,如果未满足任何以下条件,将一个碎片附加到该表的操作将会失败:
- 源表和目标包都受相同的安全策略保护。
- 两个表都具有相同的保护粒度(行级、列级或同时包含行级和列级)。
- 在两个表中,同一组受保护的列受到了相同安全标签的保护。如果有多个受保护的列,可能每个表中有多个安全标签,但同一个标签必须保护两个表中的同一列。
如果由于未满足一个或多个上述条件,导致 ATTACH 操作失败,可以使用 ALTER TABLE 语句使两个表的模式相等,然后在修改的表上再次执行 FRAGMENT ATTACH 语句。
当将具有相同表结构的表转换为一个表中的碎片时,您允许数据库服务器管理碎片,而不是允许应用程序来管理碎片。分布模式可以是 round-robin 或基于表达式。
要从两个或多个结构相同的未碎片化表中创建一个碎片表,ATTACH 子句必须在附加列表中包含幸存表。附加列表是 ATTACH 子句中的一个表列表。
要在新创建的单个碎片表中包含 rowid 列,可首先附加所有表,然后使用 ALTER TABLE 语句添加 rowid。
将一个表附加到一个碎片表
要将一个未碎片化的表附加到一个已碎片化的表,未碎片化的表必须已在一个独立的 dbspace 中创建,并且必须具有与碎片表相同的表结构。
当将一个或多个表附加到一个碎片表时,consumed_table 必须是未碎片化的。
在 ATTACH 操作中使用 ONLINE 关键字。
ONLINE 关键字要求数据库服务器在内部提交 ALTER FRAGMENT ATTACH 工作(如果没有错误),以及向幸存表应用一个意向独占锁,而不是独占锁。独占锁适用于使用表,这些表必须是未碎片化的表。
执行 ATTACH 后的索引
幸存表上分离的索引会保留相同的碎片战略。也就是说,分离的索引不会自动调整来适应幸存表的新碎片。
在支持事务日志的数据库中,ATTACH 操作会依据幸存表的新碎片战略扩展幸存表上的任何附加索引。使用表的所有行将采用这些自动调整的索引。
在 IBM Informix 的无日志记录的数据库中,ATTACH 操作不会依据幸存表上的新碎片战略来扩展幸存表上的索引。要依据幸存表上的新碎片战略来扩展一个附加索引的碎片战略,必须丢弃该索引并在幸存表上重新创建它。
一些 ALTER FRAGMENT ... ATTACH 操作可能导致数据库服务器更新索引结构。当在这些情况下重新构建一个索引时,关联的列分布会自动重新计算,并且该索引可供查询优化器在为附加了碎片的表设计查询计划时使用。
对于 ALTER FRAGMENT ... ATTACH 自动为其重建了 B 型树索引的一个(或一组)索引列,重新计算的列分布统计信息等同于 HIGH 模式下由 UPDATE STATISTICS 语句所创建的分布。
如果重新构建的索引不是 B 型树索引,自动重新计算的统计信息将对应于 LOW 模式下由 UPDATE STATISTICS 语句所创建的分布。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在进行服务器搭建或者系统管理时,CentOS7.9是一个非常常用的操作系统版本,本文将为您提供关于CentOS7.9安装以及安装SSH的详细步骤和说明。CentOS7.9是一个免费且开源的Linux操作系统,它是基于RedHatEnterpriseLinux(RHEL)的二进制兼容版本,下面是CentOS7.9安装的步骤:1.您需要下载CentOS7.9的ISO镜像文件,您可以从CentOS官方网站上下载最新的CentOS7.9ISO镜像文件。2.在您的计算机上创建一个新的虚拟机或者物理机,并将

Linux系统管理是通过配置、监控和维护来确保系统稳定、高效和安全。1.掌握shell命令如top、systemctl。2.使用apt或yum管理软件包。3.编写自动化脚本提高效率。4.调试常见错误如权限问题。5.通过监控工具优化性能。

近年来,Go语言逐渐成为Web开发的热门语言之一。作为Go语言的高性能Web框架之一,Gin框架在开发中具有较高的使用价值。该框架包含了许多有用的功能,如:路由、中间件、参数绑定、渲染、日志等。同时,Gin框架还有着完备的全栈性能和系统管理机制,下面将对其进行详细解析。一、全栈性能1.1路由性能路由是Web框架的基础功能之一,其好坏直接影响了Web应用的性

Linux系统管理员的主要任务包括系统监控与性能调优、用户管理、软件包管理、安全管理与备份、故障排查与解决、性能优化与最佳实践。1.使用top、htop等工具监控系统性能,并进行调优。2.通过useradd等命令管理用户账户和权限。3.利用apt、yum管理软件包,确保系统更新和安全。4.配置防火墙、监控日志、进行数据备份以确保系统安全。5.通过日志分析和工具使用进行故障排查和解决。6.优化内核参数和应用配置,遵循最佳实践提升系统性能和稳定性。

作为一款受欢迎的开源操作系统,Linux提供了大量的命令行工具,灵活、高效、强大的命令行工具,是Linux操作系统的重要特点之一。在这篇文章中,我们将介绍Linux系统中实用的命令及其用法,帮助您更加深入地了解Linux命令行操作。一、文件和目录操作命令ls命令ls命令可以列出当前目录下的所有文件和子目录。使用ls命令时可以加上一些参数,例如-a

如何在Linux平台上使用Python脚本进行系统管理摘要:Linux是一种强大的开源操作系统,而Python是一种功能强大的编程语言。本文将介绍如何使用Python脚本在Linux平台上进行系统管理,包括文件管理、进程管理、系统监控等方面,并提供具体代码示例。文件管理1.1文件的复制与移动在Linux下,可以使用shutil模块的copy函数来实现文件的

在Linux操作系统中,软件和系统更新是非常关键的操作,这可以确保系统的稳定性、安全性和性能的优化。在本文中,我们将为你介绍如何有效地管理Linux系统中的软件和系统更新,以确保系统的最佳运行状态。一、理解Linux软件和系统更新的重要性在Linux系统中,软件和系统更新被视为系统维护的基本操作之一。更新不仅包括修补程序的安全漏洞和错误,还可以在系统性能的优

如何使用PHP脚本进行Linux系统管理在Linux系统管理中使用PHP脚本可以极大地简化管理操作,提高效率。PHP语言具有良好的兼容性和强大的功能,可以轻松实现对Linux系统的管理任务。本文将介绍如何使用PHP脚本进行Linux系统管理,并提供具体代码示例。一、使用PHP执行Shell命令PHP提供了执行Shell命令的函数exec()和system()
