摘要: 描述 最近有业务需求需了解客户的服务器SQLserver 的IO情况,而不仅仅是通过系统计数器 了解硬盘的IO情况或者使用CrystalDiskMark或者Trace重播进行压力测试 。这时SQL SERVER 2016自带的SQLIOSIM工具就能很好解决这个需求,工具的默认路径在D:\Progr 阅读全文
posted @ 2017-05-24 22:39 jil.wen 阅读(2570) 评论(0) 推荐(1) 编辑
摘要: 描述 大家通常禁止在生产环境直接使用select * 已成常识了,也常常在开发规范中就会规定不允许直接使用select *,那么我们为什么不允许使用select * ,在一些什么场景下select * 会出问题?能否控制不能直接使用select *?出于这些疑问,我们特别测试记录一下。 测试环境 M 阅读全文
posted @ 2017-05-21 21:32 jil.wen 阅读(845) 评论(0) 推荐(0) 编辑
摘要: 背景 实施开发的同事找到我,反馈说项目中使用Azure sql database 之后,无法使用Profiler来监控自己开发的存储过程的参数传参情况。确实profiler这些实例级别的工具在Azure sql database下是不支持的,那我们有没有办法,变相实现监控参数情况,特写一篇博客记录一 阅读全文
posted @ 2017-05-08 22:13 jil.wen 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 背景 我们随时监控每个服务器不同时间段的wait statistics ,可以根据监控信息大概判断什么时候开始出现异常,相当于一个wait statistics基线收集,还可以具体分析占比高的等待类型可以大概推断出当前服务器存在一些什么性能瓶颈。当然如需分析到具体的语句也可以分析数据库上收集的Tra 阅读全文
posted @ 2017-05-05 08:07 jil.wen 阅读(784) 评论(0) 推荐(1) 编辑
摘要: 背景 我们在数据库出现阻塞及时邮件预警提醒中监控了数据库的阻塞情况,为了更好的维护数据库,特别是提升终端客户用户体验,我们要尽量避免在数据库中出现死锁的情况。我们知道收集死锁可以开启跟踪标志如1204,然后在日志中查看死锁相关信息,或者使用Profiler去跟踪死锁,我们希望所有的死锁信息收集到某表 阅读全文
posted @ 2017-05-04 08:32 jil.wen 阅读(747) 评论(0) 推荐(0) 编辑
摘要: 背景 如果数据库出现大量阻塞,如不及时进行人工干预,可能会出现数据库hang,严重甚至影响用户业务正常运转。我们希望尽量在出现阻塞的时候及时邮件通知相关干系人去响应,避免出现大量用户报障之后相关处理人员才后知后觉的情况发生,或者有张表可以存储当时的阻塞情况,供我们后期优化分析使用。基于上述需求,我们 阅读全文
posted @ 2017-05-03 09:56 jil.wen 阅读(739) 评论(0) 推荐(0) 编辑
摘要: 在数据库出现阻塞及时邮件预警提醒(上)中我们新建存放阻塞记录的表和收集阻塞的存储过程并配置发送邮件测试ok等事项。 第四步:创建发送邮件的存储过程,有两种模式,可以根据需要选择 创建发送阻塞邮件的存储过程 第一种是有附件模式(监控阻塞) USE azure_monitor; GO IF OBJECT 阅读全文
posted @ 2017-05-03 09:56 jil.wen 阅读(811) 评论(2) 推荐(1) 编辑
摘要: 背景: 虽然Azure sql database有DMVs可以查看DTU等使用情况,但记录有时间限制,不会一直保留。为了更好监控Azure_sql_database上各个库的DTU使用情况、数据库磁盘使用情况、阻塞等情况。通过本地的Agent的job使用link server 链接到各个Azure 阅读全文
posted @ 2016-10-11 10:22 jil.wen 阅读(820) 评论(2) 推荐(2) 编辑
摘要: 背景 背景 我们知道Azure Sql Database 可以降低运维成本、是一种Pass模式,有资源弹性设置,可以自由调整资源自动对应不同业务高峰(当然也可以降低费用成本),也方便项目后期的资源扩展,以及一些其他优点或特性,这就不一一列出。那么数据库开发工程师来说,操作Azure Sql Data 阅读全文
posted @ 2016-10-10 12:56 jil.wen 阅读(2679) 评论(6) 推荐(1) 编辑