假设我想为我的表实现基本压缩。我知道它可以分两步完成,例如:
- 更改表 MYTABLE 压缩;
- 改变表 MYTABLE 移动;
有没有办法检查这两个步骤是否已实施?我怎么知道数据被压缩了?
如果这很重要,我正在使用 Oracle 19c。
假设我想为我的表实现基本压缩。我知道它可以分两步完成,例如:
有没有办法检查这两个步骤是否已实施?我怎么知道数据被压缩了?
如果这很重要,我正在使用 Oracle 19c。
有谁知道像这个页面https://columnscore.com/这样的工具,可以在其中确定表是否适合行或页面压缩。
我也试图了解压缩的好处。我一直在阅读它,但仍然有这些问题。
一位同事已经开始压缩很多表(页)。我不知道这个决定背后的分析。我知道我们有时会在某些高峰时段等待资源信号量。我真的不认为他知道自己在做什么。我可以看到我们的 sos 调度程序产量等待略有上升。
我认为压缩造成的危害更大,而且现在维护任务似乎更多(例如备份、检查数据库...)。
我有一张桌子CLOB(1M)
。如果我compression yes adaptive
在表上启用压缩 (),则不会压缩 CLOB。有没有办法在 DB2 10.5 中完成这项工作?
我有一个超过 500GB 的大型 PostgreSQL 数据库,太大了。无论如何将数据库压缩到更易于管理的大小?我试图用 SquashFS 来做到这一点,并且数据库压缩到 177GB,但是 PostgreSQL 要求数据库具有写访问权限并且 Squashed 系统是只读的。更有经验的数据库用户对实现这一目标有什么建议吗?
该数据库保存地球的 GIS 数据,并将在本地部署的系统上使用。目前它位于 1TB SSD 上,但是,我试图避免仅仅为了容纳大型数据库而添加额外的硬盘驱动器。数据库按预期运行,没有问题,我只想将其压缩到更易于管理的大小,并避免将其放在单独的驱动器上。
我正在使用 Ola Hallengren 的维护和备份解决方案,并考虑利用 TDE 压缩,因为我的所有数据库实例都使用 TDE impression。有没有办法通过 Ola 的解决方案获得 TDE 压缩的好处?
我创建了一个包含 650 个 Numeric(19,4) 列的表。当我打开页面压缩时,通过运行
ALTER TABLE fct.MyTable REBUILD WITH (DATA_COMPRESSION = PAGE);
我明白了
消息 1975,级别 16,状态 1
索引“PK_Mytable”行长度超过了“8060”字节的最大允许长度。
但是 650 乘以 9 字节只有 5850 字节,与规定的 8060 字节限制相去甚远。
服务器正在运行带有 SQL Server 2016 SP1 CU2 的 Windows 2012 r2
使用页面压缩时的行开销是多少?
这是一些代码来说明我的意思:
/* test script to demo MSG 1975 */
DECLARE @sql NVARCHAR(max)='', @i INT =0
drop table if exists dbo.mytable;
SET @sql = 'Create table dbo.Mytable (MyTableID bigint not null
identity(1,1) primary key clustered, '
WHILE @i < 593 BEGIN
SET @sql += ' Column' + LTRIM(@i) + ' numeric(19,4) null, '
SET @i +=1
END
SET @sql += ' LastColumn int) '
--SET @sql += ' with (DATA_COMPRESSION = ROW) '
SET @sql += ' with (DATA_COMPRESSION = PAGE) '
SELECT @sql
EXEC sys.sp_executesql @sql
SELECT top 10000 * FROM dbo.MyTable MT
行压缩也会失败,但行数不同。
嗨,费奥多尔!该
journalCompressor
设置与日志文件特别相关。日志通常不会被压缩,因为在将数据从 WiredTiger 内存缓存刷新到磁盘时,压缩它们会导致额外的延迟。这种延迟会渗透到写入问题。journalCompressor none
是我们配置中的默认值。
ObjectRocket 似乎对 DBaaS 有所了解
ObjectRocket是一家位于德克萨斯州奥斯汀的云数据库 (DBaaS) 公司,专注于 NoSQL 数据存储,包括 MongoDB 和 Redis。2013年,他们被Rackspace收购
你觉得journalCompressor
不活泼怎么样?这是 DBaaS 提供商的有效配置并且最适合大多数用例吗?
storage:
dbPath: "/data/mongodb"
journal:
enabled: true
engine: "wiredTiger"
wiredTiger:
engineConfig:
journalCompressor: none
directoryForIndexes: "/indexes/mongodb/"
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
SQL 2012 Enterprise DB 中有一个现有表,其大小约为 120MB,包含约 2000 条记录。它最大的字段是nvarchar(max)
包含海绵状的 XML(范围从 20 到 300 kB),它本身在 7Zip 或 RAR 中压缩了大约 50-75%。
我尝试了以下立即返回的命令,即使只是从表中查询 * 需要几秒钟:
alter table sch.table1 REBUILD PARTITION=ALL WITH (DATA_COMPRESSION=ROW)
alter table sch.table1 REBUILD PARTITION=ALL WITH (DATA_COMPRESSION=PAGE)
alter table sch.table1 REBUILD PARTITION=ALL WITH (DATA_COMPRESSION=NONE)
但是在它们中的任何一个之后大小都没有改变,即使表的属性正确地显示了压缩类型。
服务器实际上是否对行/页面应用和删除压缩?它似乎没有时间在执行每个命令的瞬间完成。
以下是Microsoft Docs中的一段:
作为 DML 操作的一部分,在堆中分配的新页面在重建堆之前不会使用 PAGE 压缩。通过删除和重新应用压缩或者通过创建和删除聚集索引来重建堆。
我不明白为什么会这样。如果我有一个具有指定压缩设置的堆,为什么不将它应用于属于该表的页面?
谢谢
由于 Google Cloud SQL 是 MySQL 的托管实例,在 100GB RAM 的第二代机器上限制为绝对最大值,我应该压缩我的一些表和索引数据吗?我正在设计一个全局系统,因此最终工作集可能会超过 100GB。
以前,我通过压缩受内存限制的 SQL Server 和 Oracle 系统中的表和索引实现了性能改进。
我是 GCP 的新手,因此也是 MySQL 的新手。在这种情况下,压缩的使用仍然适用吗?是否有任何此类函数或过程(如 SQL Server 中的 compression_estimate)我可以运行以评估表或索引是否会从压缩中受益?