自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zjcxc(邹建)的Blog - SQL Server

引用或者转载本BLOG的文章请注明原作者和出处,并保留原文章中的版权信息。谢谢!

  • 博客(207)
  • 资源 (4)
  • 收藏
  • 关注

原创 基于规则引擎的SQL审核工具打造

SQL审核,是DBA工作是极其重要的一项工作,对于DDL,我们可能需要关注表结构设计、字段定义是否合理,对于DML,可能更关注也要关注操作是否合理且无风险(比如不带条件的DELETE这种大杀器),而对于DQL,我们可能需要关注更多的东西,比如不允许SELECT *,不允许超过多少个表的JOIN。这个是笔者最早做的SQL审核工具,使用的时间不长,解决了一部分人工审核的问题,正则表达式的最大问题显然是难于编写复杂的规则,而且维护难,能实现的功能有限。以笔者的经历而言,经历了三个阶段的SQL审核工具建设。

2023-03-05 12:23:53 825

原创 也谈 xtrabackup 的 DBD::mysql module is not installed 问题

xtrabackup 备提示 DBD::mysql module is not installed,是否一定要安装perl-DBD-MySQL​呢?

2022-05-29 18:32:17 1080

原创 为 FETCH 子句提供的行数必须大于零

​SQL Server从2012开始提供OFFSET FETCH子句,用于分页查询数据,最近遇到了一个问题,需要用到FETCHNEXT0,结果提示“为 FETCH 子句提供的行数必须大于零”,这才发现居然是不能使用0值的,不明白微软为啥要弄出这么一个限制​。​解决的办法,使用子查询​,即类似于这样的写法:SELECT TOP0 * FROM(SELECT XXXX FETCH NEXT) D​为什么一定要​FETCH NEXT0呢?熟悉查询优化的同学都知道,使用OF...

2022-05-28 11:48:49 1474 3

原创 Mac book升级Win11到黑退

Mac book,bootcamp安装的Windows 10升级到Windows 11的升级体验,及回退到Windows 10,以及回退遇到的各种问题

2022-04-27 15:49:13 1277

原创 MySQL 查询避坑指南

在MySQL查询中,你可能会不经意的掉入某些坑中,甚至某些坑可能让你不死也掉半条命。

2022-04-21 18:42:35 1004

原创 MySQL Load data local infile蜜罐

MySQL Load data local infile蜜罐的个人理解与规避

2022-04-16 19:05:56 6878

原创 某云安全扫描对SQL Server潜入的观察日记

对某云安全扫描潜入SQL Server的观察分析

2022-03-19 10:24:28 4865

原创 MySQL 8.0踩坑之双写负优化

最近,在MySQL中LOAD数据的时候遇到了一个诡异的问题,LOAD一个1G的文件(LOAD到表之后,表的数据文件约2G)。在5.7版本中一切正常,不到3分钟完成。将版本切换到8.0之后,性能急剧下降,1个小时也没有完成任务。 MySQL 5.7和8.0都使用的是同一台虚拟机,并且在部署MySQL时,都是基于相同的保存点进行,所以可以基本上可以排除是虚拟机和操作系统的问题。 通过对比5.7与8.0的配置,除了两者互不存在的一些配置项,以及一些明显与性能无关的...

2021-10-23 12:14:59 797

原创 pgsql在分区表与非分区表中自由切换

pgsql在版本10中推出了声明式分区表,算是让分区表这个功能走上了正轨。(之前的版本为继承+触发器,和SQL Server的分区视图有点像,算是粗制)。 随着其版本发展,功能也越来越强,但今天要介绍的是基础功能:如何优雅地在分区表和非分区表切换。 pgsql分区表有一个笔者非常喜欢的特性,分区列是自由的,不和唯一约束绑定,在诸如SQL Server、MySQL中,当你尝试把普通表转换为分区表时,会强制要求你把分区列加到唯一性约束中(主键、唯一约束/索引)...

2021-09-11 17:33:05 1067

原创 欢迎光临 https://github.com/zjcxc

在 github 上搭了个窝,欢迎大家光临zjcxc (github.com) 发布的第一个开源代码源自于对mysqldump的功能改造增强zjcxc/mysqldump (github.com)基于5.7.35 修改实现的功能:为 -A,--all-databases 选项增加数据库过滤(排除)功能 为 -w,--where 选项增加条件扩展,当指定的条件以#打头时,表示后面跟的是存储过程,由存储过程返回当前表的筛选条件。存储过程包含两个固定参数:dbnam...

2021-09-11 16:32:59 340

原创 让myqldump为不同的表使用不同的条件

mysqldump支持使用-w,--where参数为要dump的表定义条件,但这个条件是全局的。也就是说,无论你要dump的是单表,还是多表,所有的表都使用这个条件。 如果我们要dump多个表,并且不同的表要使用不同的条件,或者是仅想为dump中,某些表指定条件的情况下,dump就无法做到了。如果不考虑数据一致性,那么还可以根据条件分别导出各表。如果要保持所有表的数据一致性,那么除了分批,还要考虑追加dump过程中产生的binlog日志,这就比较头大了。 ...

2021-08-21 15:55:26 813 3

原创 Win10 中的一个端口占用问题

这是在Windows 10上配置Nginx时遇到的错误,当时没有去研究,今天在使用 golang 测试 ssh 端口转发时又遇到了这个问题,花了点jfu

2021-05-29 17:27:40 197 1

原创 记一次 Always on group 故障切换失败的处理

最近遭遇了一次有点奇怪的Always on group 故障切换,Always on group由两台SQL Server 2014组成,

2021-05-29 10:52:06 1038

原创 姿势很重要--记一次字符筛选的处理

最近处理了一个需求,找出数据中的所有生僻字,数据约1000万条,每条大约20多个字,结果文件500M。生僻字的判断标准是二级字库(600多个字)外的所有字都算生僻字。 最开始的想法很简单,两个循环:每条记录,针对二级字库中的每个字替换一次,输出结果。Powershell 脚本做这个操作So easy,跑起来之后,告知需求方第二天拿结果(1000万*6000的循环,想想也知道要跑很久)、 然后到了第二天,这个处理还没结束,由于没有输出进度,所以无法判断处...

2021-05-29 10:19:28 169

原创 mysqldump的几个坑

记录一下在mysqldump使用中遇到的几个坑。一号小坑(和中彩票差不多的机率会遇到):对象名中包含换行符,且dump包含 --routines 选项时,会出现类似下面的错误:---- Dumping routines for database 'a-- b'--mysqldump: Couldn't execute 'use `a\nb`': Unknown database 'a\nb' (1049)二号小坑(遇不遇得上看运气):由于mysqldump在导出数据时,是按show dat...

2020-12-05 18:19:38 1298

原创 说说阿里云RDS MySQL的一些缺点

RDS MySQL用了有一小段时间了,来说一说它的缺点(优点是不用我提的,它的文档、客服、技术支持人员都会告诉您) 首先说说它对比原版所做的优化改进,说到这方面的时候,应该会有很多人说,阿里的技术牛,他在这方面肯定做了很多优化,用RDS一定比官方的跑得快,但事实上,如果你真正看过它与官方版本的功能对比,你会发现,RDS所列出来的功能优势,是体现在外部功能扩展上,核心的优化并没有提(也许你会认为它是谦虚),但事实上,我们拿了一些常见的操作,在RDS与官方版本之间做对比,我们并...

2020-07-25 16:38:14 2347 1

原创 通用性能指标监控系统打造完工

服务器性能指标监控通常由IT负责,所以之前并没有打造自己的性能指标监控的考虑,最近需要做MongoDB的性能指标监控,也考虑到直接使用IT的监控系统的诸多不使得的地方,所以在这次花了些时间,直接打造了一款通用的性能指标监控系统。 整个监控系统分成三部分:数据采集、监控报表、监控报警数据采集: 数据采集使用集中采集方式,在一台服务器上采集所有需要监控的服务器信息,使用自己开发的程序,调用标准的命令(Powershell、sqlcmd、mongo、mysql、plink)做数据采...

2020-07-22 20:58:55 385

原创 记录一下这个有点绕的数据分配查询

在论坛上看到这样一个需求,有两个表,数据分别如下 表A (id, name, value ) (1, ‘A’, 2000), (2, ‘A’, 2000) 表B (id, a_name, name, value) (1, ‘A’, ‘A1’, 1000), (2, ‘A’, ‘A2’, 2000), (3, ‘A’, ‘A3’, 3000) 要求根据表A的 value 值,查询...

2018-08-25 13:20:35 1143 3

原创 忘记 SQL Server 管理员密码的处理

如果忘记 SQL Server 管理员密码,可以使用下面的方式处理 1. 使用 SQL Server 服务器计算机本地 Administrators 组的任何成员登录到 SQL Server 服务器 2. 确定忘记管理员密码的 SQL Server 服务 可以在服务(services.msc)里面查看,或者使用下面的 Powershell 命令 Get-Service | ? Displ

2017-12-23 11:56:23 10560 2

原创 MySQL中单句实现无限层次父子关系查询

在 SQL Server 中,使用 CTE 表达式很容易做到无限层次父子关系查询;在不支持CTE表达式的版本中,借助函数递归也可以轻松实现。 在 MySQL 中,这个需求的实例稍显复杂, MySQL 中没有支持递归的查询,没有表值函数,函数不支持递归,所以通常都是用循环实现,显得比较别扭。今天看到一个用单条语句实现的递归查询,想法独特,分享一下。表结构和数据CREATE TABLE table1(

2017-12-16 14:08:28 21713 17

原创 一个子查询引发的血案

最近再次看到一个帖子,说使用类似如下子查询删除数据,结果发现所有的数据都被删除了 DELETE FROM a WHERE id in (  SELECT id  FROM b  ) 粗看这是一个没有任何毛病的删除操作,只会删除 a,b 表 id 匹配的记录。但实际上这个查询暗藏杀机,如果 b 表恰好有数据,并且b表没有字段id,这个操作的结棍是什么? 很显然,如果b表没有id字段,并且有

2017-12-16 13:54:34 1801

原创 带进度的SQL Server FileStream存取

SQL Server FileStream 功能的详细参考联机帮助设计和实现 FILESTREAM 存储 这里只是把使用 Win32 管理 FILESTREAM 数据的代码调整了一下,实现带进度的存取,这对于存取较大的文件比较有意义 要使用FileStream,首先要在 SQL Server配置管理器中打开FileStream选项:SQL Server配置管理器–SQL Server服务

2015-12-08 13:42:17 7880 2

原创 也谈SQL Server 2008 处理隐式数据类型转换在执行计划中的增强 (续)

在上一篇文章也谈SQL Server 2008 处理隐式数据类型转换在执行计划中的增强 中,我提到了隐式数据类型转换增加对于数据分布很不平均的表,评估的数据行数与实际值有很大出入的问题,进一步测试之后,我发现这种评估不准确性应该确实与猜测的一样,它使用了变量的评估方式

2015-07-03 16:58:57 6611

原创 也谈SQL Server 2008 处理隐式数据类型转换在执行计划中的增强

在 SQL Server 查询中,不经意思的隐匿数据类型转换可能导致极大的查询性能问题,在 SQL Server 2008 及之后的版本中,这种操作做了增强,但还是经常遇到有问题的时候

2015-07-02 17:49:32 6925

原创 Error: 7884, Severity: 20, State: 1

背景:         程序异常中断“TCPProvider, error: 0 - An existing connection was forcibly closed by the remotehost.”,手工执行查询没有问题,不过执行时间要几十秒。Trace程序的执行,发现要数十分钟,经了解,原因在于程序使用了SqlDataReader读取数据,并且在读取的过程中进行了一系列数据处理,

2014-11-21 16:31:57 9532

原创 初步了解更新锁(U)与排它锁(X)

一直没有认真觉察UPDATE操作的锁,最近在MSDN上看到一个问题,询问堆表更新的死锁问题,问题很简单,有类似这样的表及数据:CREATE TABLE dbo.tb(     c1 int,     c2 char(10),     c3 varchar(10));GODECLARE @id int;SET @id = 0;WHILE @id 5BEGIN;     SET

2014-05-28 17:13:46 19941 10

原创 无语,遭遇: Error: 605, Severity: 21, State: 3

最近遇到一个严重错误Error: 605, Severity: 21, State: 3.Attempt to fetch logical page (1:xxxxx) in database 2 failed. It belongs to allocation unit xxxxxnot to xxxxx.严重级别 21, 看起来非常吓人,根据联机帮助对该错误的描述说明http://techne

2013-12-09 17:10:42 10724 2

原创 如何使 SQL Server高效 -- 疑难(ITPUT 讨论汇总)

4、     在您的SQL Server使用过程中,有哪些令您非常困惑的性能问题 ?讨论汇总——综合l  Tempdb方面的问题a)  行级和事务级的快照都存储在TEMPDB中 (不知架构为什么设计成这样),UNDO \ REDO 自然不太方便b)  tempdb放了太多的功能,带来性能瓶颈个人观点: tempdb感觉确实是个瓶颈。每个版本几乎都会往tempdb里面多放一些东西,tempdb所承担

2013-05-27 16:03:16 7412 1

原创 如何使 SQL Server高效 -- 程序设计(ITPUT 讨论汇总)

3、     在设计数据库操作程序上,您认为应该注意哪些事项,以确保能够有效地使用数据库? 讨论汇总l  尽量缩小读写操作范围和可重复性, 可采用临时表或表变量等中间过程过渡l  缓存。在程序端缓存常用数据l  )静态化。对应较稳定的数据,可以将它静态化存放,避免数据库访问l  )参数化,将访问语句参数化或改为存储过程l  连接池,控制访问并并发数l  批量处理。将数据修改缓存一段时间后再一起写入

2013-05-27 15:53:48 9504

原创 如何使 SQL Server高效 --T-SQL(ITPUT 讨论汇总)

2、      您认为在T-SQL编写(包括存储过程、函数和视图)上,哪些因素会影响SQL Server效率?讨论汇总——索引使用l  没有索引或者没有用到索引、I/O吞吐量小、没有创建计算列导致查询不优化、锁或者死锁、查询语句不够优化等l  对大表而言。那些不走索引的语句,错误scan的语句,还有那些强制使用HINT的语句,可能会因为时间的推移,影响了SQL Server对最优计划的生成l  避

2013-05-27 15:47:54 12915 1

原创 如何使 SQL Server高效 -- 设计(ITPUT 讨论汇总)

1、     您认为在设计SQL Server对象时,主要会考虑哪些因素来避免出现性能问题? 讨论汇总——总体设计l  应该根据系统架构类型或主要操作进行有针对性的设计: 如 OLTP 、OLAP 、ETL 等l  逻辑清晰,使应用程序更便于开发。有良好的扩展性和维护性,减少数据冗余等l  在DB管理上,得从CPU、HDD配置着手,在DB开发上,从业务流程、逻辑、功能、DB结构、SQL指令准确设计

2013-05-27 15:41:22 11294

原创 为SSRS配置SMTP服务器身份验证

在SQL Server Reporting Services中,可以通过“Reporting Services 配置管理器”配置发送邮件的SMTP服务器,但无法显式配置登录SMTP服务器的用户名和密码,登录SMTP服务器使用的是启动Reporting Services服务的帐号。所以如果Reporting Services与SMTP在同一个域,那么可以把登录SMTP的域用户设置为Reporting

2013-03-20 16:46:57 9847 1

原创 扩展 sp_helpindex, 增加 INCLUDE 和筛选索引的筛选条件

SQL Server的系统存储过程似乎没有被重视,新版本的一些特性似乎没有在系统存储过程中体现出来,着实是一件比较郁闷的事。         下面的这个存储过程是对sp_helpindex的扩展,扩展增加两个索引的新特性信息:包含列和列筛选。使用方法和 sp_helpindex 一样,感兴趣的可以试一下。USE master;GO/*-- sp_helpindex 扩展--------------

2013-02-19 13:38:53 7197

原创 在 xml.value 中, XPath中使用 text() 函数的重要性

被多次问到,为什么在DBA的规范中,会要求在解析xml值时,value 方法的 XPath 中要加 text() 函数,看起来似乎加与不加得到的结果都是一样的。    下面的测试脚本说明使用 text() 的区别,以及为什么要求使用它。DECLARE    @xml xmlSET @xml = N'b    c';SELECT  @xml.value('(/a)[1]', 'varchar(10)

2012-11-20 17:38:12 11192 1

原创 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题

复制存储过程执行应用于事务复制中,当在发布服务器上执行配置的存储过程时,存储过程导致的数据变更不会做为多步骤事务发送到订阅服务器,而仅仅是把执行存储过程的命令发送到订阅服务器。         比如,如果你为一个100万条记录的表增加了一个字段,并且初始化为一个值,如果不使用复制存储过程执行的话,那么这个操作就会形成100万个更新操作发送到订阅服务器,订阅服务器将将进行100万次更新,这个操作通常

2012-11-02 18:06:54 6949

原创 XSL中实现用户筛选

在 XSL 中实现用户筛选,折腾了好久,总算是搞定了功能需求:有如下 xml ,拟做一个 XSL 文件做解析,解析的效果是在解析后的页面下,有个DropdownList ,它列出所有的Group/@name值,允许用户通过选择来筛选XSL最终展示出来的数据xml-stylesheettype="text/xsl" href="filter.xsl"?>root>groupname="group1"

2012-09-06 13:23:24 7089

原创 在 SQL Server 中使用 Windows 用户组的一些诡异问题

最近,在SQLServer中使用Windows用户组时,发现了一些比较诡异的问题。SQL Server版本:SQL Server 2008 R2问题1:Login failed for user 'xx\xx'操作描述:         在SQL Server中添加一个Windows用户,并且使用该用户连接SQLServer(Windows身份验证),登录失败,日志中出现如

2012-04-17 17:40:09 10983 4

原创 配置 SharePoint 2010 使用本机默认 SQL Server 实例

         SharePoint 2010的安裝向导,仅具有极为有限的定制功能,里面有两种模式:n  “独立”模式,会安装SQL Server 2008 Express做为数据库服务。不具有任何定制选项;n  “服务器场”模式可以定制安装目录,里面的“独立”项和“独立”模式一样;“完整”模式不安装SQL Server Express,可以在安装完成后的配置向导中配置数据库服务

2011-06-08 15:53:00 14954 6

原创 锁不住的查询

环境: SQL Server 2005 or 2008最近在处理一个锁的问题时,发现一个比较郁闷的事,使用X锁居然无法锁住查询,模拟这个问题,可以使用如下T-SQL脚本来建立测试环境。USE master;GO IF @@TRANCOUNT > 0    ROLLBACK TRAN;GO -- ================================

2009-07-27 10:27:00 15263 51

原创 处理SQL 2008/08 中的OUTPUT与CHECK约束冲突的问题

         在SQL Server 2005中,新增的OUTPUT子句极大地提高了数据转移的方便性,不过很遗憾的是, OUTPUT子句的输出表不能包含启用状态的CHECK约束。这未免让人觉得很不爽。不过,在实际使用过程中,却发现了一个很奇怪的问题,某些具有启用状态的CHECK约束的表确实无法用于OUTPUT子句,而某些表却是可以的,经过对比,发现了这个很奇怪现象的原因,使得可以把有启用状态的

2009-04-22 05:06:00 10554 4

customer for user

sheet1 原始 sheet2 不重复ic sheet3 重复ic sheet4 所有ic(去掉重复)

2008-10-26

customer for user

customer for user 这个东西好烦哦

2008-10-26

Text Speech Source Code

使用 Vista 的文本合成语音技术, 用于朗读文本或者文件<br>(附件为源代码)<br>软件说明:<br>1. Start -- 开始朗读: 当 文本框中有数据时, 读文本框中的文本; 如果上次朗读的文件没有读完, 则继续朗读上次朗读的文件; 如果前两个都没有相应的内容, 则显示文件选择对话框选择要朗读的文件<br><br>2. Pause -- 暂停/恢复 朗读. 如果要调整朗读的位置, 则需要先暂停朗读, 然后在 Pause 下面选择 Resume Current Position<br><br>3. Stop -- 停止朗读. 停止朗读后, 如果要恢复朗读: 如果朗读的是文件, 则可以通过 Start - Speech File Resume 来恢复朗读; 如果朗读的文本, 则需要先选择要朗读的文本, 再单击 Start 来恢复朗读

2008-03-10

Text Speech

使用 VISTA 的文本语音合成技术, 用于朗读文件(或者文本).<br>适用于 VISTA<br><br>使用说明:<br>1. Start -- 开始朗读: 当 文本框中有数据时, 读文本框中的文本; 如果上次朗读的文件没有读完, 则继续朗读上次朗读的文件; 如果前两个都没有相应的内容, 则显示文件选择对话框选择要朗读的文件<br><br>2. Pause -- 暂停/恢复 朗读. 如果要调整朗读的位置, 则需要先暂停朗读, 然后在 Pause 下面选择 Resume Current Position<br><br>3. Stop -- 停止朗读. 停止朗读后, 如果要恢复朗读: 如果朗读的是文件, 则可以通过 Start - Speech File Resume 来恢复朗读; 如果朗读的文本, 则需要先选择要朗读的文本, 再单击 Start 来恢复朗读

2008-03-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除