代码改变世界

一个特殊的SQL Server阻塞案例分析

2018-11-26 14:50 by 潇湘隐者, 3092 阅读, 1 推荐, 收藏,
摘要:上周,在SQL Server数据库下面遇到了一个有意思的SQL阻塞(SQL Blocking)案例。其实个人对SQL Server的阻塞还是颇有研究的。写过好几篇相关文章。 至于这里为什么要总结一下这个案例,因为这个案例有点意思: 1:使用DMV视图捕获到的Blocking SQL为一个查询语句(这个不是真正引起阻塞的源头SQL语句),等待事件为LCK_M_S。 2:出现阻塞的会话非常... 阅读全文

cannot be run because the QueueReader subsystem failed to load

2018-11-22 14:52 by 潇湘隐者, 607 阅读, 0 推荐, 收藏,
摘要:前阵子一数据库服务器的事务日志开始暴增,当时使用下面脚本检查发现该数据库的log_reuse_wait_desc 一直处于REPLICATION状态, 也就是说在事务复制过程中,与发布相关的事务仍未传递到分发数据库。刚好前一天有个同事配置了AWS的DMS相关作业。 SELECT name, log_reuse_wait_desc FROM sys.databases; 找到具体作业检查发... 阅读全文

ORACLE中关于表的一些特殊查询语句

2018-11-22 10:57 by 潇湘隐者, 1764 阅读, 2 推荐, 收藏,
摘要:1: 如何判断字段的值里面:那些数据包含小写字母或大小字母 判断字段NAME的值里面有小写字母的记录 方式1: SELECT NAME FROM TEST WHERE regexp_like(NAME,'[[:lower:]]'); 方式2 SELECT NAME FROM TEST WHERE regexp_like(NAME,'[a-z]'); 判断字段NAME... 阅读全文

ORACLE中如何查找定位表最后DML操作的时间小结

2018-11-20 14:33 by 潇湘隐者, 4131 阅读, 0 推荐, 收藏,
摘要:在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析、总结一下。 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ROWSCN伪列是Oracle 10g开始引入的,可以查询表中记录最后变更的SCN。然后通过SCN_TO_TIMESTAMP函数可以将SCN转换为时间戳,从而找到最后DML操作时SC... 阅读全文

MySQL慢查询日志释疑总结

2018-11-15 15:25 by 潇湘隐者, 11544 阅读, 4 推荐, 收藏,
摘要:之前写了一篇“MySQL慢查询日志总结“,总结了一些MySQL慢查询日志常用的相关知识,这里总结一下在工作当中遇到关于MySQL慢查询日志的相关细节问题,有些是释疑或自己有疑惑,自己测试验证、解惑方面的知识。此篇只是总结个人的一些经验,不足之处,敬请指正! 1: 为什么在慢查询日志里面出现Query_time小于long_query_time阀值的SQL语句呢? 例如,如下... 阅读全文

Windows服务器如何查看共享目录信息

2018-11-13 14:41 by 潇湘隐者, 4300 阅读, 1 推荐, 收藏,
摘要:查看Windows服务器上的共享目录的相关信息,可以使用两种方式: 1:命令net share 查看: 2:通过计算机管理的Shared Folders查看 阅读全文

SQL Server Log Shipping学习总结

2018-11-13 12:25 by 潇湘隐者, 6295 阅读, 2 推荐, 收藏,
摘要:SQL Server的日志传送(log shipping)技术一直比较鸡肋,尤其当SQL Server 推出了Always On技术以后,估计使用日志传送(log shipping)这种技术方案的企业越来越少,但是日志传送也有自己的一些优点,有些特殊场景或业务背景下也有其存在的价值。最近由于特殊业务场景可能需要用到这个技术,所以做了一些测试和验证,比对一些知识做了一下总结、归纳。下面有部分内容... 阅读全文

Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)

2018-11-07 15:47 by 潇湘隐者, 11046 阅读, 0 推荐, 收藏,
摘要:今天一个同事反馈往一个MySQL数据库导入数据时,报“ERROR 1 (HY000): Can't create/write to file '/tmp/MLjnvU95' (Errcode: 13 - Permission denied)”这样的错误,如下所示: uery OK, 0 rows affected (0.03 sec) ERROR 1 (HY000): Can't cr... 阅读全文

MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析

2018-11-05 14:49 by 潇湘隐者, 33763 阅读, 35 推荐, 收藏,
摘要:关于如何理解MySQL执行计划中Extra列的Using where、Using Index、Using index condition,Using index,Using where这四者的区别。首先,我们来看看官方文档关于三者的简单介绍(官方文档并没有介绍Using index,Using where这种情况): Using index (JSON property: using_... 阅读全文

Oracle 10g 应用补丁PSU 10.2.0.5.180717

2018-11-04 19:06 by 潇湘隐者, 3675 阅读, 0 推荐, 收藏,
摘要:最近测试了一下在Oracle 10g下面(单实例下面)升级、应用补丁PSU 10.2.0.5.180717,打这个补丁的主要原因是 Oracle 将于 2019年6月启用新的SCN兼容性,并且由于BigSCN的作用,96K每秒的SCN增速,都可能会使得通过DB Link的访问产生SCN过度拉升,所以新的补丁需要被应用。最近(2018年8月份)Oracle 提供了针对 Oracle 10g 最终... 阅读全文

SQL Server捕获发生The query processor ran out of internal resources and could not produce a query plan...错误的SQL语句

2018-10-27 11:45 by 潇湘隐者, 3744 阅读, 0 推荐, 收藏,
摘要:最近收到一SQL Server数据库服务器的告警邮件,告警内容具体如下所示: DATE/TIME: 10/23/2018 4:30:26 PM DESCRIPTION: The query processor ran out of internal resources and could not produce a query plan. This is a rare event and... 阅读全文

Linux压缩打包tar命令总结

2018-10-22 00:06 by 潇湘隐者, 101821 阅读, 1 推荐, 收藏,
摘要:命令简介 在Linux系统的维护、管理中,tar命令是一个使用频率很高的命令,tar命令的功能主要是将众多文件打包成一个tar文件并压缩,并且能保持文件的权限属性。tar其实最开始是用来做磁带备份存盘的,tar是tape archive的简称。后面扩展到不仅仅局限于磁带备份存盘。也能存放到文件系统中。tar命令版本众多,下面整理了一些常用的参数,具体以实际版本为准。 命令参数 ... 阅读全文

RHEL 6.6下Python 2.6.6升级到Python 3.6.6

2018-10-19 11:26 by 潇湘隐者, 2383 阅读, 1 推荐, 收藏,
摘要:最近一段时间shell脚本写得很溜,很有成就感,一想到被自己落下的Python就感到十分心虚。开始坚持学习Python!先将自己的测试机器的Python升级到Python 3.6.6。简单整理、记录一下! 1:检查当前Linux版本&Python版本信息 # more /etc/redhat-release Red Hat Enterprise Linux Server releas... 阅读全文

SQL Server 更新统计信息出现严重错误,应放弃任何可能产生的结果

2018-10-17 15:00 by 潇湘隐者, 1964 阅读, 0 推荐, 收藏,
摘要:一台SQL Server 2008 R2版本(具体版本如下所示)的数据库,最近几天更新统计信息的作业出错,错误如下所示: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Standard... 阅读全文

SQL Server中LIKE %search_string% 走索引查找(Index Seek)浅析

2018-10-17 12:27 by 潇湘隐者, 6014 阅读, 2 推荐, 收藏,
摘要:在SQL Server的SQL优化过程中,如果遇到WHERE条件中包含LIKE '%search_string%'是一件非常头痛的事情。这种情况下,一般要修改业务逻辑或改写SQL才能解决SQL执行计划走索引扫描或全表扫描的问题。最近在优化SQL语句的时候,遇到了一个很有意思的问题。某些使用LIKE '%' + @search_string + '%'(或者 LIKE @search_strin... 阅读全文

Ubuntu上更改MySQL数据库数据存储目录

2018-10-15 23:37 by 潇湘隐者, 5504 阅读, 2 推荐, 收藏,
摘要:之前写过一篇博客“MySQL更改数据库数据存储目录”,当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之前的经验用不上了(或者说之前的总结不是太全面),修改完MySQL数据库数据存储目录后重启MySQL,发现MySQL服务无法启动。 root@mylnx2:/etc/mysql/mysql.conf.d# servi... 阅读全文

ssh服务突然连接不了案例总结

2018-10-11 00:04 by 潇湘隐者, 18015 阅读, 1 推荐, 收藏,
摘要:ssh服务突然连接不了案例总结 一台Oracle数据库服务器(Linux版本为Oracle Linux Server release 5.7)今天中午突然出现短暂的ssh连接不上的情况,ssh连接不上的时候,ping服务器正常,使用psping检测端口22也是正常(只返回5个包,没有持续ping),使用SQL Developer可以登录数据库进行任何操作,另外,通过DPA工具发现该服务器的CP... 阅读全文

SQL Server实际执行计划COST"欺骗"案例

2018-10-10 15:10 by 潇湘隐者, 1549 阅读, 3 推荐, 收藏,
摘要:有个系统,昨天Support人员发布了相关升级脚本后,今天发现系统中有个功能不能正常使用了,直接报超时了(Timeout expired)的错误。定位到相关相关存储过程后,然后在优化分析的过程中,又遇到了执行计划COST “欺骗”我们的这种情况,其实在我这篇博客”SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题“有提及这个问题,但是很多时... 阅读全文

Ubuntu下面MySQL的参数文件my.cnf浅析

2018-10-07 00:09 by 潇湘隐者, 21913 阅读, 5 推荐, 收藏,
摘要:前几天刚接手一个MySQL数据,操作系统为Ubuntu 16.04.5 LTS, 数据库版本为5.7.23-0ubuntu0.16.04.1(APT方式安装的MySQL)。这个操作系统下的MySQL的配置文件my.cnf很多地方都让人有点不适应(跟之前的MySQL环境有些出入,之前都是维护RHEL、CentOS等操作系统环境下的MySQL)。遂研究总结了一下。具体如下所示: root@... 阅读全文

Ubuntu下创建XFS文件系统的LVM

2018-10-05 23:22 by 潇湘隐者, 3998 阅读, 0 推荐, 收藏,
摘要:以前在Linux下面玩LVM,一般都是选择ext3、ext4格式的文件系统,最近在Ubuntu 16.04.5下安装配置一个MySQL数据库服务器,遂测试了一下XFS文件系统的LVM,其实仔细对比下来,差别不大,只是文件格式化的区别以及件系统的调整命令的不同。下面很多地方不做过多解释,只是简单的记录测试过程。 在测试服务器新增一个磁盘,如下所示,新增的磁盘为/dec/sdc root... 阅读全文

Linux LVM学习总结——Insufficient Free Extents for a Logical Volume

2018-10-05 16:08 by 潇湘隐者, 7561 阅读, 2 推荐, 收藏,
摘要:如下所示,在创建LV的时候,偶尔会遇到“Volume group "xxxx" has insufficient free space (xxxx extents): xxxx required”这类错误。表示Volume group的可用空间不够了。如下测试所示: root@mylnx12:~# lvcreate -L +623G -n LogVol01 VolGroup01 Volum... 阅读全文

SQL Server中通用数据库角色权限处理

2018-09-28 17:33 by 潇湘隐者, 1578 阅读, 1 推荐, 收藏,
摘要:SQL Server中通用数据库角色权限处理 最近和同事在做数据库权限清理的事情,主要是删除一些账号;取消一些账号的较大的权限等,例如,有一些有db_owner权限,我们取消账号的数据库角色db_owner,授予最低要求的相关权限。但是这种工作完全是一个体力活,而且是吃力不讨好,而且推进很慢。另外,为了管理方便和细化,我们又在常用的数据库角色外,新增了6个通用的数据库角色。如下截图所示。 ... 阅读全文

Key Lookup开销过大导致聚集索引扫描

2018-09-21 15:11 by 潇湘隐者, 3905 阅读, 2 推荐, 收藏,
摘要:以前总结过一篇文章SQL SERVER中什么情况会导致索引查找变成索引扫描 介绍了几种索引查找(Index Seek)变成索引扫描(Index Scan)的情形。昨天写一篇文章的时候,也遇到了一个让人奇怪的执行计划。一时没有想明白为什么优化器会选择聚集索引扫描。案例详情请见SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结 。 如下所示,测试环境为SQL ... 阅读全文

SQL Server OPTION (OPTIMIZE FOR UNKNOWN) 测试总结

2018-09-21 00:37 by 潇湘隐者, 5771 阅读, 4 推荐, 收藏,
摘要:关于SQL Server的查询提示OPTION (OPTIMIZE FOR UNKNOWN) ,它是解决参数嗅探的方法之一。 而且对应的SQL语句会缓存,不用每次都重编译。关键在于它的执行计划的准确度问题, 最近在优化的时候,和同事对于这个查询提示(Query Hint)有一点分歧,遂动手实验验证、总结了一些东西。 关于提示OPTION (OPTIMIZE FOR UNKNOWN),它会利... 阅读全文

ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes

2018-09-20 14:45 by 潇湘隐者, 94255 阅读, 15 推荐, 收藏,
摘要:今天在MySQL 5.6版本的数据库中修改InnoDB表字段长度时遇到了"ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes"错误,第一次遇到这个错误,遂花了点学习、研究过、总结这个问题。 我们先来创建一个测试表,构造这样的错误。 mysql> use MyDB;Reading tab... 阅读全文

一次存储过程参数嗅探定位流程总结

2018-09-15 12:30 by 潇湘隐者, 3630 阅读, 6 推荐, 收藏,
摘要:昨天一开发同事反馈一个存储过程很慢,但是重编译后,存储过程就很快了。了解基本情况后,初步判断是参数嗅探问题。那么如何诊断定位、分析问题呢?下面简单介绍一下这次参数嗅探问题定位的流程过程。 首先查看该存储过程的执行计划相关信息: 如下截图所示,此存储过程是2018-09-12 9:03:01缓存的,最后一次执行是2018-09-14 08:58,而且自上次缓存后,执行了24875次。... 阅读全文

ORACLE如何检查找出损坏索引(Corrupt Indexes)

2018-09-14 11:41 by 潇湘隐者, 1320 阅读, 0 推荐, 收藏,
摘要:在Oracle数据库中如何找出损坏索引呢? 下面我们人为构造一个案例,将索引块损坏。如下案例所示: SQL> create tablespace test_data 2 datafile '/u01/app/oracle/oradata/gsp/test_data_01.dbf' 3 size 200M autoextend off 4 logging 5 segm... 阅读全文

MySQL索引扩展(Index Extensions)学习总结

2018-09-12 16:19 by 潇湘隐者, 4042 阅读, 3 推荐, 收藏,
摘要:MySQL InnoDB的二级索引(Secondary Index)会自动补齐主键,将主键列追加到二级索引列后面。详细一点来说,InnoDB的二级索引(Secondary Index)除了存储索引列key值,还存储着主键的值(而不是指向主键的指针)。为什么这样做呢?因为InnoDB是以聚集索引方式组织数据的存储,即主键值相邻的数据行紧凑的存储在一起(索引组织表)。当数据行移动或者发生页分裂的时... 阅读全文

Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx

2018-09-04 23:13 by 潇湘隐者, 2587 阅读, 0 推荐, 收藏,
摘要:今天遇到了一个关于LINKED SERVER查询报错的案例,链接服务器链接ORACLE数据库,测试没有错误,但是执行脚本的时候,报如下错误: Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "OraOLEDB.Oracle" for linked server "xxxx" reported an error. Ac... 阅读全文

oracle中print_table存储过程介绍

2018-09-03 22:08 by 潇湘隐者, 2461 阅读, 0 推荐, 收藏,
摘要:一直以来,觉得MySQL中使用\G参数改变输出结果集的显示方式非常好用,尤其是在命令行界面。但是ORACLE数据库没有这个功能,今天在搜索到Tom大师的一篇博文时,发现大师用一个存储过程print_table实现了类似这样的功能。只是我们这些凡夫俗子不知道而已,特意整理在此,方便自己或有需要的人以后查看。 CREATE OR REPLACE PROCEDURE print_table(p_q... 阅读全文
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 43 下一页