- 博客(126)
- 资源 (4)
- 收藏
- 关注
原创 将博客搬至优快云
本博客将搬至优快云 ,关注我的粉丝,请稳步https://blog.youkuaiyun.com/qq_39824154 ,感谢对我多年的支持
2020-07-24 23:51:00
160
原创 数据库实战案例—————记一次TempDB暴增的问题排查
前言 很多时候数据库的TempDB、日志等文件的暴增可能导致磁盘空间被占满,如果日常配置不到位,往往会导致数据库故障,业务被迫中断。 这种文件暴增很难排查,经验不足的一些运维人员可能更是无法排查具体原因,导致问题不能彻底解决。场景描述 客户系统比较稳定,用了5台机器做了AlwaysOn高可用组,完全实现了读写分离。磁盘也做了规划,主库日常操作TempDB需求在20G...
2018-06-12 10:01:00
520
原创 数据库高可用实战案例-------架构优化之清爽一夏
说到高可用,看官们会想到很多方案,也许是自亲身经历过系统从单机变成高可用的痛苦过程,也许有的看官只是在自己的虚机上搭建过测试的玩具。今天本篇用我自己的真实经历给大家讲述,不管怎么样实战和测试玩耍还是很大的区别的!可能你觉得搭建一套高可用方案很简单,配置配置就OK了,但在真正的复杂系统中一切就没有那么轻松了! 文章主要讲述升级并搭建AlwaysOn高可用的过程,以实施的思路为主。文...
2018-06-12 10:00:00
162
原创 性能优化实战案例——助力某移动OA系统
前言 最近连续接触了4个OA系统,均存在着不同的性能问题,本文记述对某移动OA系统的优化全过程,让看官们对数据库优化流程有一个了解,并揭开隐式转换这无情杀手的神秘面纱。 本文使用的工具:SQL专家云平台专业体检工具:www.zhuancloud.com系统情况 硬件配置 软件情况 数据库情况 系统情况可...
2018-06-12 09:59:00
115
原创 数据库优化案例——————某市中心医院HIS系统
记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是整体的优化思想是很难学会的。这也是为什么自己特别喜欢看案例,今天也开始分享自己做的优化案例。 最近一直很忙,博客产出也少的可怜,今天整理了一下自己做过优化或各种方案的客户已经超过100家了,今天分享的案例算是在这些客户中比较典型的了!没有什么高大上都是常见的问题!在之前的博客中都有过提及,那么本篇我们就结...
2018-06-12 09:58:00
202
原创 数据库的运维策略脚本篇(内附脚本,无私分享)
数据库运维中盛传一个小段子,我误删除了数据库,改怎么办?有备份还原备份,没有备份就准备简历!听起来有趣但发生在谁身上,谁都笑不起来。接触了很多的客户发现90%客户的运维策略都不是很完善。本篇就分享一些常规的运维脚本,本篇没有涉及到的或不足的也请大家留言无私贡献深藏多年的脚本,谢谢!邮件 邮件主要用来监控作业是否运行成功,如果您已经配置了类似zabbix等软件请忽略。配置邮件...
2018-06-12 09:57:00
288
原创 Expert 诊断优化系列-------------针对重点语句调索引
上一篇我们说了索引的重要性,一个索引不仅能让一条语句起飞,也能大量减少系统对CPU、内存、磁盘的依赖。我想上一篇中的例子可以说明了。给出上一篇和目录文链接:SQL SERVER全面优化-------Expert for SQL Server 诊断系列 书接前文,我们知道了索引的重要,也知道了索引怎么加,那么我们应该往那些语句加?语句一条一条漫无目的的优化么?我怎么...
2018-06-12 09:56:00
136
原创 SQL SERVER全面优化-------索引有多重要?
想了好久索引的重要性应该怎么写?讲原理结构?我估计大部分人不愿意看,也不愿意花那么多时间仔细研究。光写应用?感觉不明白原理一样不会用。举例说明?情况太多也写不全....到底该怎么写呢? 随便写吧,想到哪写到哪! 前面很多篇不管CPU、内存、磁盘、语句等等等都提到了索引的重要,我想刚刚开始学数据库的在校学生都知道索引对语句性能的重要性。但他们可能不知道,对语句的重要性就是对系...
2018-06-12 09:55:00
112
原创 SQL SERVER全面优化-------写出好语句是习惯
前几篇文章已经从整体提供了诊断数据库的各个方面问题的基本思路...也许对你很有用,也许你觉得离自己太远。那么今天我们从语句的一些优化写法及一些简单优化方法做一个介绍。这对于很多开发人员来说还是很有用的!为了方便阅读给出前文链接:SQL SERVER全面优化-------Expert for SQL Server 诊断系列 网上确实有好多好多好多好多SQL 语句优化的文章,什...
2018-06-12 09:54:00
104
原创 Expert 诊断优化系列------------------锁是个大角色
前面几篇已经陆续从服务器的几个大块讲述了SQL SERVER数据库的诊断和调优方式。加上本篇可以说已经可以完成常规的问题诊断及优化,本篇就是SQL SERVER中的锁。为了方便阅读给出系列文章的导读链接:SQL SERVER全面优化-------Expert for SQL Server 诊断系列 首先阅读本文之前,大家都应该知道锁是影响你性能的一个重大因素,那...
2018-06-12 09:51:00
121
原创 Expert 诊断优化系列------------------给TempDB 降温
前面文章针对CPU、内存、磁盘、语句、等待讲述了SQL SERVER的一些基本的问题诊断与调优方式。为了方便阅读给出导读文章链接方便阅读:SQL SERVER全面优化-------Expert for SQL Server 诊断系列 这篇我们来说说TempDB,这个系统数据库如何进行优化,怎么样平衡他的使用。 首先简单介绍一下TempDB:Tempdb是SQL S...
2018-06-12 09:50:00
106
原创 Expert 诊断优化系列------------------透过等待看系统
上一篇我们简单的介绍了,语句优化的三板斧,大部分语句三板斧过后,就算不成为法拉利也能是个宝马了。为了方便阅读给出系列文章的导读链接:SQL SERVER全面优化-------Expert for SQL Server 诊断系列 本篇主要讲述几个常见的系统等待,透过这些等待,看看系统存在什么问题,怎么样解决这些问题。结合系统三巨头(CPU,内存,磁盘)综合展现系统问题和这些元...
2018-06-12 09:49:00
108
原创 Expert 诊断优化系列------------------语句调优三板斧
前面三篇通过CPU、内存、磁盘三巨头,讲述了如何透过现在看本质,怎样定位服务器三巨头反映出的问题。为了方便阅读给出链接:SQL SERVER全面优化-------Expert for SQL Server 诊断系列 通过三篇文章的基本介绍,可以看出系统的语句如果不优化,可能会导致三巨头都出现异常的表现。所以本篇开始介绍系统中的重头戏--------------SQL语句!...
2018-06-12 09:47:00
121
原创 Expert 诊断优化系列------------------冤枉磁盘了
Expert 诊断优化系列------------------冤枉磁盘了 现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高。软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治。开发人员解决数据问题基本又是搜遍百度各种方法尝试个遍,可能错过诊断问题的最佳时机又可能尝试一堆方法最后无奈放弃。 ...
2018-06-12 09:46:00
84
原创 Expert 诊断优化系列------------------内存不够用么?
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高。软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治。开发人员解决数据问题基本又是搜遍百度各种方法尝试个遍,可能错过诊断问题的最佳时机又可能尝试一堆方法最后无奈放弃。 怎么样让琐事缠身的程序维护人员,用最快的方式解决数据库出现的问题?怎么让我们程序员的痛苦降低到...
2018-06-12 09:44:00
175
原创 Expert 诊断优化系列------------------你的CPU高么?
Expert 诊断优化系列------------------你的CPU高么? 现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高。软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治。开发人员解决数据问题基本又是搜遍百度各种方法尝试个遍,可能错过诊断问题的最佳时机又可能尝试一堆方法最后无奈放弃。...
2018-06-12 09:42:00
105
原创 写给运维兄弟
写在前面的故事 首先,给看官们讲个故事:最近遇到过一个客户,系统上线三年变的越来越慢,直到前几个月全面爆发,系统前端使用人员不断抱怨,甚至已经达到了不能使用的程度。这个时候他们的IT主管也是决策者无法忍受这种情况,就召集下面的运维开会,询问情况。 领导:现在系统这么慢,前端都无法使用了,到底什么情况? 运维人员A:我们的服务器CPU压力太大,一直处于90%以上! ...
2018-06-12 09:38:00
103
原创 SQL SERVER全面优化-------Expert for SQL Server 诊断系列
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高。软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治。开发人员解决数据问题基本又是搜遍百度各种方法尝试个遍,可能错过诊断问题的最佳时机又可能尝试一堆方法最后无奈放弃。 本系列文章主要和企业IT运维人员或数据库从业者分享,如何用最快的方式解决数据库出现的问题?当问...
2018-06-12 09:36:00
90
原创 SQL调优日记--并行等待的原理和问题排查
概述 今天处理项目,客户反应数据库在某个时间段,反应特别慢。需要我们提供一些优化建议。现象 由于是特定的时间段慢,排查起来就比较方便。直接查看这个时间段数据库的等待情况。查看等待类型发现了大量的CXPAKET等待类型且等待时间长.有的看官可能知道,出现这个等待类似时,可以适当降低最大并行度来解决。但是为什么这么做呢?降低并行度就一定可以解决问题吗...
2018-06-12 09:23:00
74
原创 sql2008 误操作还原至指定时间点
--drop database db--创建一个测试库create database dbgo--备份一个完整备份文件backup database db to disk = 'd:\db.bak'go--创建一个测试表use dbgocreate table db.dbo.td_test(id int)goinsert into db...
2018-06-10 22:20:00
132
原创 windows系统如何查看物理cpu核数,内存型号等
首先,我们需要打开命令行模式,利用win+r键打开运行,输入cmd回车即会出现然后在命令行界面输入wmic进入命令行系统管理执行脚本界面然后我们通过cpu get *可以查看cpu的具体情况(注意空格),拖动滚动条找到numberofcores和numberoflogicalproces...
2018-06-08 16:46:00
877
原创 sql2000如何完美压缩.mdf文件
--收缩数据库dbcc shrinkdatabase('test_db')dbcc shrinkfile(1, 0) --数据文件mdfdbcc shrinkfile(2, 0) --日志文件ldfdbcc updateusage (0) --更新
2018-06-07 17:50:00
500
原创 SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信息。这些信息对分析问题很有价值。1 SET STATISTICS TIME ON2 SET STATISTICS IO ON3 SET STATISTICS PROFI...
2018-06-06 16:12:00
137
原创 Sql Server性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
1.前言 对于优化SQL语句或存储过程,以前主要是用如下语句来判断具体执行时间,但是SQL环境是复杂多变的,下面语句并不能精准判断性能是否提高;如果需要精确知道CPU、IO等信息,就无能为力了。123PRINTconvert(varchar(30),getdate(),121)select*fromSa...
2018-06-06 15:53:00
150
原创 理解性能的奥秘——应用程序中慢,SSMS中快(6)——SQL Server如何编译动态SQL...
我们抛开参数嗅探的话题,回到了本系列的最初关注点中:为什么语句在应用程序中慢,但是在SSMS中快?到目前为止,都是在说存储过程的情况。而存储过程的问题通常是因为SET ARITHABORT的不同设置项的原因。如果你的应用不使用存储过程,而是通过中间层提交客户端的查询,那么也有几个原因可能让你的查询因为不同的缓存条目从而使得在SSMS和应用程序中的运行有差异。什么是动态SQL?...
2018-06-05 17:48:00
204
原创 理解性能的奥秘——应用程序中慢,SSMS中快(5)——案例:如何应对参数嗅探...
首先我们需要明白,参数嗅探本身不是问题,而是一个特性,避免SQL Server做出盲目的假设,从而产生次优查询计划。但是有些情况下,参数嗅探却会带来负面影响。通常有下面三种典型的情况:查询使用的参数嗅探完全不合适。也就是说,查询计划对于这次执行是合适的,但是对于下一次执行就可能不合适。应用程序中存在特定的调用模式,而且与其他大部分调用模式差异很大。通常这种调用是针对初次启动或...
2018-06-05 17:44:00
220
原创 理解性能的奥秘——应用程序中慢,SSMS中快(4)——收集解决参数嗅探问题的信息...
前面已经提到过关于存储过程在SSMS中运行很快,但在应用程序中运行很慢的可能原因:因为ARITHABORT的不同选项会导致不同的缓存词目,另外由于SQL Server使用了参数嗅探导致获得了不同的执行计划。 虽然已经说明了这个现象的原因,但是还没解释:如何定位和解决这个问题?到目前为止,大家都知道了如何快速处理,如果这个问题很紧急,可以直接使用: EXEC...
2018-06-05 17:37:00
255
原创 理解性能的奥秘——应用程序中慢,SSMS中快(3)——不总是参数嗅探的错
在我们开始深入研究如何处理参数嗅探相关的性能问题之前,由于这个课题过于广泛,所以首先先介绍一些跟参数嗅探没有直接关系的内容,但是又会导致语句在SSMS和应用程序中存在性能差异的情况。替换变量和参数: 前面已经接触过,但是在这里对其进行扩展。有时会看到论坛上有人说,某个存储过程很慢,但是把相同的语句提取出来单独执行就很快。真相就是:语句涉及了变量,可能是本地变量或者参数...
2018-06-05 17:31:00
135
原创 理解性能的奥秘——应用程序中慢,SSMS中快(2)——SQL Server如何编译存储过程...
本文介绍SQL Server如何编译存储过程并使用计划缓存。如果你的应用程序完全没有用到存储过程,而是直接使用SQL语句提交请求,那么本文大部分内容也是有效的。但是关于动态SQL的编译会在后面章节介绍,这里重点关注让人头痛的存储过程问题。什么是存储过程? 虽然这个问题有点愚蠢,但是实际的问题是:什么对象有自己的查询计划?SQL Server为下面四类对象创建查询计划:1. 存储过...
2018-06-05 17:26:00
195
原创 理解性能的奥秘——应用程序中慢,SSMS中快(1)——简介
本文属于《理解性能的奥秘——应用程序中慢,SSMS中快》系列 在工作中发现有不少类似的现象,有幸看到国外大牛写的一篇文章,由于已经完善得不能再添油加醋,所以决定直接翻译,原文出处:http://www.sommarskog.se/query-plan-mysteries.html#defaultsettings 本人水平有限,如果读者觉得自己英语过得去,建议阅读原文。在...
2018-06-05 16:18:00
100
原创 第六章——根据执行计划优化性能(3)——键值查找
前言: 本文为本系列最后一篇,介绍键值查找的相关知识。 键值查找是具有聚集索引的表上的一个书签查找,键值查找用于SQLServer查询一些非键值列的数据。使用非聚集索引的查询不会有键值查找,但是所有键值查找会伴随非聚集索引出现。这里特别提醒的是键值查找总是伴有嵌套循环关联。准备工作:下面将创建一个表,通过执行计划看看键值查找的不同效果。为了产生...
2018-06-05 16:18:00
172
原创 第六章——根据执行计划优化性能(2)——查找表/索引扫描
前言: 在绝大部分情况下,特别是从一个大表中返回少量数据时,表扫描或者索引扫描并不是一种高效的方式。这些必须找出来并解决它们从而提高性能,因为扫描将遍历每一行,查找符合条件的数据,然后返回结果。这种处理是相当耗时耗资源的。在性能优化过程中,一般集中于:1、CPU2、Network3、磁盘IO而扫描操作会增加这三种资源的开销。准备工作:下面...
2018-06-05 16:13:00
86
原创 第六章——根据执行计划优化性能(1)——理解哈希、合并、嵌套循环连接策略...
前言:本系列文章包括:1、理解Hash、Merge、Nested Loop关联策略。2、在执行计划中发现并解决表/索引扫描。3、介绍并在执行计划中发现键查找并解决它们。对于性能优化,需要集中处理以下的问题:1、为你的环境创建性能基线。2、监控现在的性能并发现瓶颈。3、解决瓶颈以便得到更好的性能。一个预估执行计划是描述查询将会如何执行的一个蓝...
2018-06-05 16:11:00
332
原创 SQL Server 执行计划操作符详解(3)——计算标量(Compute Scalar)
前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介绍第三个常见的操作符计算标量(Compute Scalar)。这个操作符的名字比较直观——进行一个标量计算并返回计算值。官方说明:Compute Scalar 运算符通过对表达式求值来生成计算标量值。该值可以返回给用户、在查询中的其他位置引用或二者皆可。例如,在筛选谓...
2018-06-05 16:06:00
747
原创 SQL Server 执行计划操作符详解(2)——串联(Concatenation )
前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻想一下是干嘛的。其实还是挺直观,就是把东西连起来,那么下面我们来看看到底连什么?怎么连?什么时候连?简介: 串联操作符既是物理操作符,也是逻辑操作符,在中文版SQL Server的图形化执行计划中称为“串联”,在其他格式及英文版本中称为“...
2018-06-05 16:01:00
534
原创 SQL Server 执行计划操作符详解(1)——断言(Assert)
前言: 很多很多地方对于语句的优化,一般比较靠谱的回复即使——把执行计划发出来看看。当然那些只看语句就说如何如何改代码,我一直都是拒绝的,因为这种算是纯蒙。根据本人经验,大量的性能问题单纯从语句来看很难发现瓶颈,同一个语句,由于环境的不同,差距非常大,所以比较合适的还是分析执行计划。 那么对于执行计划,一般使用图形化执行计划就差不多了,但是用过的人也...
2018-06-05 15:59:00
517
原创 自定义事件框架浅说
自定义事件框架浅说1、窗口概述 2、窗口相关事件 1、打开窗口 key事件 timer事件 2、保存数据 1、 pfc_begintran 3、 pfc_endtran 4、 Pfc_save 3、关闭窗口 3、数据窗口事件 添加主表明细单据 取消之前的新建的单...
2018-06-03 14:32:00
559
原创 数据窗口控件常用函数
accepttext() 把编辑控件的内容写入当前项 (接收数据)deleterow() 把删除的行放到数据窗口的删除缓冲区,可以使用dw_1.update()函数,在数据库修改rowsdiscard() 删除行 dw_edit.rowsdiscard(l1,l2,primary!)删除主缓冲区从l1行开始到l2行结 ...
2018-06-03 14:28:00
281
原创 PB函数大全
PB函数大全 Abs()功能计算绝对值。语法Abs ( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值。如果参数n的值为NULL,Abs()函数返回NULL。 Ceiling()功能返回大于n的最小整数。语法Ceiling ( n )参数n:数值型变量或表达式返回值返回值的数据类...
2018-06-03 14:27:00
259
SQL Server 开发与管理高级技巧v2.0系列课程_数据库的创建和删除.mp4
2020-08-19
第一章 第一节 数据库规划和分区技术.doc
2020-03-31
load failed while importing QtGui:找不到指定程序
2023-09-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人