- 博客(24)
- 收藏
- 关注
原创 mysql学习
master_info_repository:复制的相关信息保存在文件还是表里(mysql.slave_master_info,mysql.slave_relay_log_info)============================延迟复制========================================================主从延迟============================3 创建用户时指定auth_plugin为mysql_native_password。
2024-03-01 17:09:26 592
原创 mysql面试
准备阶段( transaction prepare ): 事务 SQL 语句先写入 redo log buffer ,然后做一个事务准备标记,再将 log buffer 中的数据刷新到 redo log。提交阶段( commit ):将事务产生的 binlog 写入文件,刷入磁盘,再在 redo log 中做一个事务提交的标记,井把 binlog 写成功的标记也 井写入 redo log 文件。两阶段提交分别为 prepare commit 阶段。异步复制和半同步复制相同点和不同点,适用场景。
2024-01-25 17:12:04 482
原创 postgres面试题
《PostgreSQL面试题集锦》学习与回答_pg面试-CSDN博客postgresql 数据库面试题及知识梳理_51CTO博客的技术博客_51CTO博客PostgreSQL问答(面试)- 2211_51CTO博客的技术博客_51CTO博客PostgreSQL问答(面试)- 2210_51CTO博客的技术博客_51CTO博客
2024-01-22 15:59:19 471
原创 oracle rac安装的一些操作系统配置
vi /etc/udev/rules.d/96-asmmultipath.rules添加以下内容。数据库软件HOME目录 /u01/app/oracle/product/19.3.0/db。net.ipv4.conf.ens19f0.rp_filter = 2 --私网。# vi /etc/security/limits.conf 添加如下内容。vi /etc/systemd/logind.conf 编辑并添加如下内容。集群软件HOME目录 /u01/app/19.0.0/grid。
2024-01-17 11:17:15 132
转载 Oracle中 的 DBMS_CRYPTO加密包
原文地址http://blog.csdn.net/rznice/article/details/7402850对Oracle内部数据的加密,可以简单得使用DBMS_CRYPTO来进行,效果还是不错的,而且使用也比较方便,所以今天专门来学习一下这个包的使用方法。在使用之前,要注意两件事情: 1、DBMS_CRYPTO包是10g才有的,如果在10g以前的版本,使用DBMS_
2017-04-19 17:10:19 8225
原创 sql首次执行快,后续慢(_optimizer_use_feedback)
开发反映执行一条sql很慢,查看问题时发现,第一次执行很快,后续执行很慢,等待无结果,只好中断对应sql语句为select o.merchant_no, o.mer_order_id, o.bank_name, o.account_no, o.account_name, o.cert_type,
2016-09-26 16:49:44 5980
原创 基于规则的优化器
出现以下情形之一时,即使修改优化器模式使用rbo,oracle也不会使用rbo1、目标sql中有iot(index organized table)2、目标sql中有分区表3、使用了并行查询或并行dml4、使用了星型链接5、使用了hash连接6、使用了索引快速全扫描7、使用了函数索引......在sql中使用hint,就默认启用了cbo,下两个hint例
2016-09-21 16:13:25 1014
原创 理解B树索引
问题描述:理解B树索引解决方案:有一张表:create table cust(cust_id number,first_name varchar2(10),last_name varchar2(20));由于经常使用last_name进行查询,在last_name上有一个索引create index idx_cust_lname on cust(last_name);加
2016-09-20 17:43:38 1348
原创 通过审计监控表的使用
问题描述:如何通过审计监控某些表是否被操作,包括插入,删除,更新,查询解决方案:使用oracle标准审计1、设置审计参数audit_trail2、重启数据库3、使用audit语句对特定操作进行审计audit的值为:none:禁用数据库审计os:启用审计,将审计信息写到操作系统文件db:启用审计,将审计信息写到SYS.AUD$表db_extended:启用
2016-09-20 11:25:34 545
原创 列级压缩数据(混合列式压缩)
问题描述:oracle的exadata存储支持混合列式压缩,能够提高io性能,减少select读取的块数解决方案:创建表时通过compress for query或compress for archive子句create table f_regs(reg_id number,reg_desc varchar2(1000)) compress for query;也可以指定压缩级别
2016-09-20 10:12:03 3000
原创 为所有dml压缩数据(oltp压缩)
问题描述:如何在oltp环境中为所有dml语句压缩数据解决方案:使用oracle oltp压缩创建表时使用compress for oltpcreate table regs(id number,name varchar2(1000)) compress for oltp;在11.2之前,compress for oltp使用compress for all opera
2016-09-19 17:48:26 393
原创 压缩数据以进行直接路径加载
问题描述:dss系统(decision support system)环境中包含许多加载一次,然后频繁扫描的表,采用压缩可以节省io,带来额外的cpu消耗解决方案:使用oracle基本压缩特性将直接路径加载的数据压缩1、使用compress子句创建,修改或移动表时启用压缩2、通过直接路径方式(create table ... as select或insert /*+ app
2016-09-18 16:18:02 351
原创 收缩表
问题描述:段顾问显示一张表有大量闲置空间,如何释放来提高全表扫描的性能解决方案:1、启用行移动2、使用alter table ... shrink space语句释放空间收缩表功能要求表所在表空间是自动段空间管理在对一张表进行收缩时,需要移动数据行,需要启动行移动alter table inv enable row movement;收缩表alter tab
2016-09-18 14:23:00 273
原创 处理行链接
问题描述:你有一张表,其中的数据行可能存储在多个数据块中,这回增加IO使用率,减慢查询速度,你想使这些数据位于一个数据块中当表有显著的行链接问题时,手工执行段顾问建议,可得到以下输出select 'TASK_NAME :'||T1.TASK_NAME ||CHR(10)|| 'START_RUN_TIME :'||TO_CHAR(T1.EXECUTION_STAR
2016-09-13 16:22:02 391
原创 手工生成段顾问建议
问题描述:你有一张表做了大量数据更新,你发现这张表的查询速度有所下降,你怀疑有行链接问题,因此想手工生成段顾问建议解决方案:使用dbms_advisor可分析特定表空间的所有段,或者某个特定的对象(例如表或索引)1、创建一个任务2、为任务分配对象3、设置任务参数4、执行任务执行dbms_advisor需要advisor权限grant advisor to sco
2016-09-12 16:26:30 744
原创 显示自动段顾问建议
问题描述:你有一个查询耗费时间很长,但是表中数据很少,你想查看段顾问有什么建议解决方案:使用段顾问来显示表的信息,曾经分配过但现在是空的空间(删除大量数据行),有大量未使用的空间的表会使全表扫描变得很慢,因为全表扫描会扫描高水位线下的所有块dbms_space包可以查看段顾问的建议。这些信息由段顾问生成,这些段适合收缩,移动或压缩,如下查询:select 'segment
2016-09-09 15:35:54 1092
原创 高效移除表中数据
问题描述如何快速的从表中移除数据解决方案使用truncate或delete。truncate更快,但是有副作用。truncate是ddl语句,会自动提交,并且不能回滚。也不能在一个事物中truncate两张独立的表truncate table computer_systems;truncate之后,表只会剩下minextents定义的空间,其余空间会释放,如果不希望释放空间
2016-09-08 18:10:21 305
原创 数据加载速度最大化
问题描述:尽快的加载大量数据到一张表中解决方案:1、修改表的日志记录属性为nologging,会使直接路径生成的redo最小(对dml基本没有影响)2、使用直接路径加载 insert /*+ append */ into xxx select ... insert /*+ append_values*/ into xxx values create tabl
2016-09-06 18:50:44 725
原创 创建表时控制段延迟分配
问题描述:部署一个应用时,需要创建数千表和索引。如果每个表都分配段,你希望这些语句尽快运行完,不需要为每个表分配初始化空间解决方案:推迟初始段生成的唯一方法就是使用11gr2的段延迟分配,将出事物理空间分配推迟到第一条记录插入的时候。例子:create table f_regs(reg_id number,reg_name varchar2(200));查询表尚未分配任何空间s
2016-09-06 15:19:32 709
原创 选择有益于性能的列类型
问题描述创建表时,应有合适的列类型及约束解决方案创建表时,考虑下面的特性1、如果一列总是存储数值型数据,那么将其数据类型设置为数值型。"01"和1是不同的,正确的类型可避免不必要的数据类型转换2、如果有明确的业务规则定义数值类型的长度,则照此实现,如number(7,2)。如果没有,则定义为number(38)3、对于长度可变的字符数据,使用varchar2而不
2016-09-01 15:04:11 240
原创 匹配表类型与业务需求
问题描述:oracle提供了非常多的表类型供选择,根据特定的业务需求选择合适类型的表对于性能有很大的影响解决方案:oracle创建的表默认是堆组织表,大多数情况,堆组织表可以提供搞笑的数据存取,下面有其他一些表类型:堆组织表:默认的表类型,除非有特殊原因,否则就是用这种表索引组织表:数据存放在一个按照主键排序的索引结构中,通常用于按照主键查找临时表:用于在事物或者会话期
2016-08-31 10:50:15 547
原创 创建具有最优性能的表空间
问题:表空间是存储数据库对象的逻辑容器,在创建对象时不指定存储特性,则会继承表空间的存储特性,因此应如何创建可维护最优化的表空间解决方案:创建的表空间应具有如下特性(如果可以选择):1、本地管理2、ASSM(automatic segment space management),自动段空间管理使用下面的语句创建:create tablespace tools
2016-08-30 17:25:02 637
原创 创建具有最优性能的数据库
问题:如何创建具有最优性能的数据库1、强制创建的每一个表空间都是本地管理的2、为每个用户自动分配一个默认的永久表空间3、为每个用户自动分配一个默认的临时表空间解决方案:使用下面的创建数据库脚本create database o11r2 maxlogfiles 16 maxlogmembers 4 maxdatafiles 1024 maxinst
2016-08-29 16:33:46 488
原创 分区表查询带分区条件,没有分区消除
1、数据库中交易流水表越来越大,对流水表以create_time列做了分区,开发配合对sql改进,加了create_time做查询条件。但是观察sql执行情况,查询sql的where条件中虽然有create_time,但是却是全表扫描所有分区,性能甚至低于分区之前 分区情况如下: sql文本和执行计划如下: 对应的java代码如下,其中使用了timestamp类型:
2016-08-05 14:45:55 9750
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人