直方图原理总结:一在oracle中使用直方图来表示数据的分布质量。它会按照某一列不同值出现的数量的多少,以及出现频率的高低来绘制数据的分布情况,以便能够指导优化器根据数据的分布做出正确的选择是使用索引还是全表扫描。二如果where子句的过滤谓词的列上有一个合理的正确的直方图,它将会对优化器做出正确的选择发挥巨大的作用,使得sql语句执行成本最低从而提升性能。在获得准确的直方图信息后,基于成本的优化
关于压缩表,可以调整的参数看起来只有key_block_size,在建表时指定,意味着innodb会将page压缩到指定的大小,例如,如果设置Key_block_size=8,则将其压缩到8k。Key_block_size的值应根据记录的长度来确定,如果设置的过小,可能由于一个page无法压缩太多行而出现高概率的压缩失败,导致不得不split page.但设置为16k则不会取得太好的压缩
转载
2024-02-19 10:55:30
84阅读
2018年9月30日22点,眼看着就10月份了,回头看下,8月份就写了一篇博客,9月一篇都没写,想着还是得续一续。刚好前几天,帮一个群友处理了一个关于Oracle中行转列,根据查询中有的项目,动态转列的做法。想着也挺好玩,不过看下时间,不太充足。所以暂时先写个Oracle自带的行转列函数,pivot的基本用法。国庆几天看下有时间的话完善一下动态转列的做法,到时候再另写一篇附链接过来。一、运行环境还
目录行转列方法一:Oracle中的Pivot函数方法二:聚合函数(max)结合decode函数方法三:使用聚合函数(max)结合case when 函数列转行 方法一:Oracle中的unpivot函数方法二:使用union all方法 行转列方法一:Oracle中的Pivot函数说明:pivot(聚合函数 for 列名 in(类型)),其中 in(‘’) 中可以指定别名,in中还可以指定子查询
转载
2024-10-17 22:03:09
307阅读
在【Oracle移行到Sqlserver完美解决案】③执行时间改善案bcp+bulk 一文中,移行实现了,但数据600多万件,占内存3G多的操作log表,移行需要32H,这个时间我们是无法接受的。原因:我分析是oracle和sqlserver之间的数据类型转化占用的大量的时间。分析:我们如何能避免类型数据的转化,你如果使用了sqlserver的provider创建dblink来查询,这个无法避免。
1、用BACKUP LOG database WITH NO_LOG清除日志
把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全
用BACKUP LOG database WITH NO_LOG命名
转载
2024-05-11 18:32:52
232阅读
# MySQL 列压缩的实现步骤
在面对大量数据时,如何高效地存储数据成为了开发者必须考虑的问题。MySQL 提供了列压缩的功能来帮助我们减少存储的占用空间,在这篇文章中,我将指导你如何在 MySQL 中开启列压缩。
## 步骤概览
下面是实现 MySQL 列压缩的流程:
| 步骤 | 描述 |
|------|---------
前言:备份的种类:逻辑备份(mysqldump),物理备份(xtrabackup)。对于数据量小的库可以选择逻辑备份,数据量大就需要用到物理备份。一、mysqldumpmysqldump相当于导出sql脚本。MyISAM引擎备份时,为了保持数据一致性,需要加上--lock-all-tables。Innodb如果需要记录binlog和position,还需要加上--master-data=2(如果=
摘要:mysql在创建表的时候定义表的性质(也叫表的类型),共有三种:静态表,动态表,压缩表。默认是静态表,如果存在varchar、blob、te...mysql在创建表的时候定义表的性质(也叫表的类型),共有三种:静态表,动态表,压缩表。默认是静态表,如果存在varchar、blob、text字段,表类型就是动态了。1.静态表:字 段有固定长度,例如:char(20)。如果使用gbk字符集存储中
转载
2023-10-18 22:12:53
84阅读
postgresql 有一个uuid数据类型,选择这个类型就可以在每条记录新增时自动生成uuid值。但
原创
2022-11-29 15:41:27
3123阅读
1 查询语句查看账户下的所有表select * from tab; 查看账户下的所有表的详细信息select * from user_tables; 1.1 selectselect 用于从数据看查询数据。语法: select field1,filed2,.. .
from tablename
[where condition]; 利用 Oracle 数据库 Scott 账户
转载
2024-09-17 16:16:01
113阅读
每个表都有隐藏的系统列,创建表列的时候不能和系统列名相同,下面讲解一下PostgreSQL有哪些系统列.(1)oid(4 bytes)object identifier(即object ID)主要用于系统表如pg_class(记录table的一个表),pg_namespace(记录schema的一个表),创建表时,如果指定with oids,则存在oid列。还可以由参数default_with_o
原创
2017-10-14 16:20:31
1443阅读
Oracle 表压缩(Table Compression)介绍1、官方文档说法: As your database grows in size, consider using table compression. Compression saves disk space, reduces memory use in the database buffer cache, and can signi
转载
2024-02-23 15:46:38
636阅读
1 表的加法
将两个表的数据按行合并在一起(删除重复的行):
2 表的联接
2.1 交叉联接(cross join)
将两个表通过交叉联接合并在一起:
2.2 内联接(inner join):
SQL语句:
2.3 左联接(left
转载
2024-03-19 00:01:24
1895阅读
数据库压缩开始--1、最开始先执行数据的导出和删除--2、执行下面语句查看空间压缩情况select a.file#,
a.name,
a.bytes / 1024 / 1024 CurrentMB,
ceil(HWM * a.block_size) / 1024 / 1024 ResizeTo,
(a.bytes - HWM * a.bloc
转载
2024-03-05 21:11:54
198阅读
Oracle PL/SQL 程序设计读书笔记 - 第16章 动态SQL和动态PL/SQLOracle PL/SQL 程序设计读书笔记 - 第16章 动态SQL和动态PL/SQL16.1 NDS语句16.1.1 EXECUTE IMMEDIATE语句EXECUTE IMMEDIATE SQL_string
[INTO {define_variable[, define_variable]...
转载
2024-04-18 11:19:09
161阅读
一.行列转换1.行转列先来说这个pivot函数pivot(fuc(c1) for c2 in(v1,v2,v3))解释: pivot用于行转列,其中fuc是聚合function,c1即为column_name1,c2为被转换的字段,v1,v2,v3则是要根据被聚合的字段和输出列表数据的转移,即v1,v2,v3为输出结果.行转列有两种方式 它们的本质都是分组方式一:select +case when
转载
2024-10-10 10:34:24
2375阅读
1.命令简介gzip(GNU zip)命令用来压缩和解压缩文件,是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,采用 LZ77 无损压缩算法,压缩后的文件一般使用 .gz 后缀。gzip 不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和 tar 命令一起构成 Linux 操作系统中比较流行的压缩文件格式。据统计,gzip 命令对文本文件有 60%~70% 的压缩率。
转载
2024-10-28 18:55:33
59阅读
【标题】压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志 【内容】 清除SQL数据库日志文件 有两种方式: 一、是压缩日志,二、是删除日志。一、压缩日志及数据库文件大小 &nb
转载
2024-06-15 12:24:00
233阅读