第30期 SELECT * 对SQL性能不利的原因
今天讨论一下SELECT * 对SQL性能不利的原因有哪些,有时候我们应用程序并不需要查询所有的列,当我编写生产代码时,我在查询选择列表(投影)中都会明确指定感兴趣的列,这不仅是出于性能原因,也是出于应用程序可靠性原因。例如,当我们为表添加了新列或表中的列顺序发生变化时,应用程序的数据处理代码是否能正常运行,会不会突然中断?在本文中,我将只关注SQL性能方面。我们使用的是基于Oracle的示例,但
第28期 Oracle LOB数据实际存储在哪里
If you create the LOB column with DISABLE STORAGE IN ROW, then the LOB data is always stored out-of-line. LOB index is always used. Only the LOB ID is stored inline, and the ID is looked up in LOB ind
第27期 Oracle在线重定义介绍
Oracle在线重定义介绍• Oracle 在线重定义(Online Redefinition)是一种功能,允许数据库管理员在不需要停止或显著影响数据库正常操作的情况下,对数据库表进行结构化修改。• 这个功能在大型企业级数据库环境中非常重要,因为停机时间可能导致业务中断和收入损失。• Oracle 在线重定义功能通过`DBMS_REDEFINITION` 包提供,允许在表数据仍在被查询和修改的同时
第24期 Oracle数据文件重命名
Oracle数据文件重命名,最常用的命令。我们在运维数据库时,经常会遇到以下几种场景,场景一,收到数据库服务器磁盘空间预警的报警,提示磁盘空间不足,这时发现数据库文件占用磁盘空间比较大,这时就需要添加新的磁盘,或者把数据库文件迁移到磁盘空间充足的磁盘上。场景二,添加数据库文件时,数据文件名字写错了。场景三,数据库文件迁移到其他服务器或者数据库文件需要迁移到其他目录下。这几种场景都会用到Oracle
《大连公益讲师团》在美丽的滨海城市-大连成立了啦
2024年12月17日,《大连公益讲师团》在美丽的滨海城市-大连成立了啦。这里有一群执着于技术的人。这里有一群执着于教育的人。我们希望与你一起。站在时代的风口,让技术成就梦想。欢迎加入大连公益讲师团。加入《大连公益讲师团》有很多好处:1.人脉拓展加入专家圈与同行大牛交流技术,结交好友。2.提升技能通过线上,线下的活动,我们都能学到最前沿的技术,了解行业动态。3.为企业推荐人才我们可以为想找工作的,
第19期 使用SQL Loader工具从csv文件数据导入Oracle数据库中
在Oracle中,可以使用SQL Loader工具或外部表功能来导入CSV文件中的数据到数据库表中。以下是使用SQLLoader的一个基本示例和使用外部表的示例。使用SQL*Loader:1.首先我们有一个CSV文件(phb.csv),文件内容如下:梁圣红,居民身份证(户口薄),2102041966101****0,女,1966-10-14,医保个账,OB20***000178247,升级版,19
第18期 Oracle Data Guard Broker有什么新功能?
Data Guard Broker 是一个分布式的管理构架,可将 DG 系统中的主库和所有备库当做一个整体来实现集中自动化管理。用于自动化 Data Guard 配置的创建、维护、和监控。你能使用 Oracle Enterprise Manager 图形化用户界面(GUI)或 Data Guard 命令行界面(DGMGRL)来管理DG.Data Guard Broker是简化DG复杂的管理过程的一
第17期 Oracle通过触发器监控审计执行的ddl语句
如果要审计数据库中的DDL操作,在Oracle中,可以通过创建DDL触发器来监控和审计执行的DDL语句。我们可以在不同的层级上进行审计,比如在数据库级别,审计数据库上所有ddl操作,我们也可以在schema(这里是'YOUR_SCHEMA_NAME')上审计每个DDL操作。1.数据库级别DDL审计2.schema级别DDL审计以下是创建在schema级别DDL触发器的示例代码:CR
第15期Oracle调用DBMS_JOB.SUBMIT报错:ORA-27486:权限不足
Oracle调用DBMS_JOB.SUBMIT包创建一个job时报错:ORA-27486:权限不足报错场景创建了一个存储过程,调用了SYS.DBMS_SCHEDULER.CREATE_JOB报错:ORA-27486:权限不足问题原因当前执行存储过程的用户没有创建job的权限解决方案登陆管理员权限给用户赋予创建job的权限赋权语句SQL> GRANT CREATE 
第14期 Oracle 大表添加索引的最佳方式
大家好,我是酋长彭,我又来和大家分享数据库知识了,这次是和大家分享的是,如何在大表上在不影响业务的情况下,给表新增索引,大家知道如果操作不当,有可能会把数据库夯死。背景: 业务系统中现在经常存在上亿数据的大表,在这样的大表上新建索引,是一个较为耗时的操作,特别是在生产环境的系统中,添加不当,有可能造成业务表锁表,业务表长时间的停服势必会影响正常业务的开
第12期 Oracle12.2 引发 SQL 不能共享进而造成 Cursor Mutex: x
今天有一个朋友说公司安装使用的是Oracle12.2 ,发现一直存在enq: TX - row lock contention事件,出现cursor: mutex X、cursor: mutex S、cursor: pin S wait on X 这类等待事件。查询oracle资料,发现是由于Oracle12.2 未公开的 bug 导致的由于 Bind_equiv_failure 引发
第11期 如何确定一个SQL语句的SQL_ID?
本文档介绍了如何使用V$SQL视图、AWR & ASH数据或关联视图的数据字典查询来确定SQL语句关联文本的SQL_ID。如何确定一个SQL语句的SQL_ID?语句的SQL_ID可以在AWR或ASH报告中找到,或者使用V$SQL视图从数据库数据字典中找到。如果SQL可以用一个特定的可识别的字符串或某种独特的注释来识别,如:/* TARGET SQL */,那么这将使其更容易被找到。比如:S
第10期 ADG灾备库自动删除归档日志
我们在搭建完ADG灾备库后,我们经常会遇到归档日志满的预警信息,那么备库的归档日志是怎么删除的?怎么管理的?搭建过dg的同学肯定非常清楚归档日志和备份的重要性,这些归档日志从主库传输到备库,在备库被应用apply。思考一个问题:主库的归档日志是怎么管理呢,备库的归档日志又该怎么管理呢?首先说一下日志的重要性, 归档日志是非常重要的,备份恢复需要它,而Data Guard也需要它。不能够随意手动删除
第9期 ADG库 FOREIGN ARCHIVED LOG占用过大
今天早晨一个ADG的灾备库预警。提示闪回恢复区占用了97%以上的空间。登陆服务器查询V$RECOVERY_AREA_USAGE的时候,发现foreign archived log 占用的空间较多。SQL> select * from v$recovery_area_usage; FILE_TYPE &