第34期 CURSOR_SHARING和FORCE_MATCHING_SIGNATURE对SQL计划稳定性的局限性
在 Oracle 数据库中,CURSOR_SHARING 参数和 FORCE_MATCHING_SIGNATURE 是用于优化 SQL 语句共享和执行计划稳定性的工具。然而,它们在某些情况下存在局限性,尤其是在处理复杂或动态生成的 SQL 语句时。本文将探讨这些局限性,并分析它们对 SQL 计划稳定性的影响。CURSOR_SHARING=FORCE 的作用CURSOR
第33期 MySQL程序概述
MySQL 安装中包含许多不同的程序。本节将简要概述这些程序。后续章节将更详细地描述每个程序(NDB Cluster 程序除外)。每个程序的描述包括其调用语法和支持的选项。第 21.5 节“NDB Cluster 程序”将介绍与 NDB Cluster 相关的特定程序。大多数 MySQL 发行版都包含所有这些程序,除了那些特定于平台的程序(例如,Windows 上不使用服务器启动脚本)。例外情况是
第32期 NULL 不是零!
之前我写过一篇文章,讨论了 COUNT(*) 和 COUNT(column) 在语义上是不同的(链接)。如果被计数的列中包含 NULL 值,这些查询可能会返回不同的结果。这种差异源于 NULL 不是一个具体的值,而是一种状态,表示“值未知”或“未输入值”。 因此,如果你是 DBA 或数据库开发人员,最好理解 NULL 如何在你编写的SQL 的使用。
第31期 SQL中COUNT(*)与COUNT(column)区别
SELECT COUNT(*) 和 COUNT(column) 是不同的在SQL中,COUNT(*) 和 COUNT(column) 是两个常用的聚合函数,但它们的行为和结果可能会有所不同。理解它们之间的区别对于编写正确的查询非常重要。COUNT(*)COUNT(*) 用于计算表中的行数,包括所有行,无论列中的值是否为 NULL。它的作用是统计表中
第30期 SELECT * 对SQL性能不利的原因
今天讨论一下SELECT * 对SQL性能不利的原因有哪些,有时候我们应用程序并不需要查询所有的列,当我编写生产代码时,我在查询选择列表(投影)中都会明确指定感兴趣的列,这不仅是出于性能原因,也是出于应用程序可靠性原因。例如,当我们为表添加了新列或表中的列顺序发生变化时,应用程序的数据处理代码是否能正常运行,会不会突然中断?在本文中,我将只关注SQL性能方面。我们使用的是基于Oracle的示例,但
第29期 MySQL 1075 Incorrect table definition; there can be only one auto column
在MySQL中执行修改表结构的sql语句时,ALTER TABLE `mytable` ADD COLUMN `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键id' FIRST;报错1075 - Incor
第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` 包提供,允许在表数据仍在被查询和修改的同时
第26期 MySQL区分大小写
在MySQL数据库中,大小写敏感性可能会影响到数据库的操作和管理。了解如何设置不区分大小写对于开发者和管理员来说至关重要。本文将指导您如何在不同环境中配置MySQL以实现大小写不敏感。MySQL大小写涉及到两个方面:1、MySQL的表名、列名以及数据库名的大小写,参数lower_case_table_names2、对于存储的数据内容(即表中的数据),这取决于所使用的字符集和排序规则。关于MySQL
第25期 MySQL部分复制
部分复制概述MySQL默认的复制是全库复制,从库会执行所有主库发送过来的事务。但某些应用场景我们并不需要全库复制,例如将不同的数据分散到不同的从库上或者考虑网络带宽不充足时,此时我们需要用到复制过滤来控制仅复制数据库的一部分。MySQL实现部分复制的方式是对binlog进行过滤,有两类过滤方法:主库过滤:主库控制事务是否写入binglog,如果未将事务写入binlog,则不会复制该事务。从库过滤:
第24期 Oracle数据文件重命名
Oracle数据文件重命名,最常用的命令。我们在运维数据库时,经常会遇到以下几种场景,场景一,收到数据库服务器磁盘空间预警的报警,提示磁盘空间不足,这时发现数据库文件占用磁盘空间比较大,这时就需要添加新的磁盘,或者把数据库文件迁移到磁盘空间充足的磁盘上。场景二,添加数据库文件时,数据文件名字写错了。场景三,数据库文件迁移到其他服务器或者数据库文件需要迁移到其他目录下。这几种场景都会用到Oracle