摘要: SQL Server数据库系统的IO性能受到物理硬盘的IO延迟和SQL Server请求执行的IO操作的影响。在监控硬盘性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从应用程序创建IO请求,到硬盘完成IO请求的时间延迟。如果物理硬盘不能及时完成IO请求,跟不上请求负载的速度,那么SQ 阅读全文
posted @ 2016-09-23 18:29 悦光阴 阅读(5945) 评论(2) 推荐(9)
摘要: Performance Monitor是Windows内置的一个可视化监控工具,能够在OS级别上实时记录系统资源的使用情况,通过收集和存储日志数据,在SQL Server发生异常时,能够还原系统当时的资源的使用情况,是对SQL Server进行Troubleshooting的首选工具。Perform 阅读全文
posted @ 2016-09-22 20:47 悦光阴 阅读(14714) 评论(4) 推荐(10)
摘要: 性能计数器(Performance Counter)是量化系统状态或活动的一个数值,Windows Performance Monitor在一定时间间隔内(默认的取样间隔是15s)获取Performance Counter的当前值,并记录在Data Collections中,通过Performanc 阅读全文
posted @ 2016-09-22 10:49 悦光阴 阅读(3257) 评论(2) 推荐(7)
摘要: 项目组有一个数据库备份的Job运行异常,该Job将备份数据存储到remote server上,平时5个小时就能完成的备份操作,现在运行19个小时还没有完成,backup命令的Wait type是 ASYNC_IO_COMPLETION: 根据MSDN 官方文档的定义:Occurs when a ta 阅读全文
posted @ 2016-09-21 09:34 悦光阴 阅读(2672) 评论(2) 推荐(2)
摘要: 数据库使用Table来存储海量的数据,细分Table结构,数据最终存储在Table Column中,因此,在设计Table Schema时,必须慎重选择Table Column的Data Type,数据类型不仅决定了Column能够存储的数据范围和能够进行的操作,而且合适的数据类型还能提高查询和修改 阅读全文
posted @ 2016-09-20 14:16 悦光阴 阅读(1802) 评论(7) 推荐(7)
摘要: 在MongoDB(版本 3.2.9)中,分片集群(sharded cluster)是一种水平扩展数据库系统性能的方法,能够将数据集分布式存储在不同的分片(shard)上,每个分片只保存数据集的一部分,MongoDB保证各个分片之间不会有重复的数据,所有分片保存的数据之和就是完整的数据集。分片集群将数 阅读全文
posted @ 2016-09-17 19:33 悦光阴 阅读(9449) 评论(5) 推荐(7)
摘要: 在MongoDB(版本 3.2.9)中,数据的分发是指将collection的数据拆分成块(chunk),分布到不同的分片(shard)上,数据分发主要有2种方式:基于数据块(chunk)数量的均衡分发和基于片键范围(range)的定向分发。MongoDB内置均衡器(balancer),用于拆分块和 阅读全文
posted @ 2016-09-16 19:22 悦光阴 阅读(2647) 评论(6) 推荐(6)
摘要: 在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群。分片集群(Sharded Clustered)的服务器分为三中类型:Router(mongos),Config 阅读全文
posted @ 2016-09-15 16:50 悦光阴 阅读(2229) 评论(0) 推荐(2)
摘要: 在每个MongoDB(版本 3.2.9) Instance中,都有一个本地数据库(local),用于存储 Replication 进程的信息和本地数据。local 数据库的特性是:位于local数据库中的数据和集合不会被 Replication 进程复制到其他MongoDB instance上。如果 阅读全文
posted @ 2016-09-13 19:52 悦光阴 阅读(8301) 评论(1) 推荐(3)
摘要: 今天查看Job的History,发现Job 运行失败,错误信息是:“The transaction log for database 'xxxx' is full due to 'ACTIVE_TRANSACTION'.” 错误消息表明:数据库的事务日志文件空间耗尽,log 文件不能再存储新的tra 阅读全文
posted @ 2016-09-09 20:02 悦光阴 阅读(15615) 评论(1) 推荐(8)
摘要: 在搭建MongoDB(版本 3.2.9)的Replica Set时,使用 rs.status() 查看Replica Set的状态,发现一个成员异常:replica set IDs do not match,详细信息是: 尝试了各种方法,在Primary 节点中,不能删除该成员;将该成员的mongo 阅读全文
posted @ 2016-09-08 21:05 悦光阴 阅读(4346) 评论(0) 推荐(2)
摘要: 在开始使用MongoDB(Version:3.2.9)之前,必须首先在MongoDB中创建 Database 和 Collection。Database是相互独立的,每个Database都有自己的Collections,不同的database中,可以存在名字相同的collection,但是Datab 阅读全文
posted @ 2016-09-05 18:34 悦光阴 阅读(29323) 评论(2) 推荐(4)
摘要: 在设计一个新系统的Table Schema的时候,不仅需要满足业务逻辑的复杂需求,而且需要考虑如何设计schema才能更快的更新和查询数据,减少维护成本。 模拟一个场景,有如下Table Schema: Product(ID,Name,Description) 在设计思路上,ID是自增的Identi 阅读全文
posted @ 2016-09-05 11:29 悦光阴 阅读(3040) 评论(6) 推荐(8)
摘要: SSISDB 系列随笔汇总: SSISDB1:使用SSISDB管理Package SSISDB2:SSIS工程的操作实例 SSISDB3:Package的执行实例 SSISDB4:当前正在运行的Package及其Executable SSISDB5:使用TSQL脚本执行Package SSISDB6 阅读全文
posted @ 2016-09-02 16:54 悦光阴 阅读(934) 评论(0) 推荐(2)
摘要: Index 能够提高查询的性能,如果没有Index,MongoDB必须扫描整个collection,从collection的第一个doc开始,直到最后一个doc,即使第一个doc之后的所有doc都不满足查询条件。如果在Collection上有合适的Index,例如,unique index,那么Mo 阅读全文
posted @ 2016-09-01 20:47 悦光阴 阅读(15673) 评论(4) 推荐(4)
摘要: MongoDB是文档型数据库,每个文档(doc)表示数据的一项记录。相比关系型DB的row只能使用简单的数据类型,doc能够使用复杂的数据类型:内嵌doc,数组。MongoDB的数组是一系列元素的集合,使用中括号 [] 表示数组,例如:[1,2,3]的元素是整数值,[{name:"t5"}, {na 阅读全文
posted @ 2016-08-31 19:47 悦光阴 阅读(33038) 评论(4) 推荐(12)
摘要: MongoDB是文档型的数据库系统,doc是MongoDB的数据单位,每个doc相当于关系型数据库的数据行(row),doc和row的区别在于field的原子性:row中的column是不和分割的原子对象,而doc中的field可以是原子对象,也可以是内嵌doc(embedded doc),数组等数 阅读全文
posted @ 2016-08-30 19:59 悦光阴 阅读(5225) 评论(0) 推荐(3)
摘要: 在MongoDB中,有两种方式计算聚合:Pipeline 和 MapReduce。Pipeline查询速度快于MapReduce,但是MapReduce的强大之处在于能够在多台Server上并行执行复杂的聚合逻辑。MongoDB不允许Pipeline的单个聚合操作占用过多的系统内存,如果一个聚合操作 阅读全文
posted @ 2016-08-30 19:57 悦光阴 阅读(15909) 评论(2) 推荐(9)
摘要: 在db中删除数据是十分危险的事,建议使用logic delete,即在doc中增加一个field:IsDeleted,将其设置为1,表示该doc在逻辑上被删除,这种workaround将delete操作转换为一个update操作,比较安全。 MongoDB使用remove删除doc,语法如下, Al 阅读全文
posted @ 2016-08-23 11:32 悦光阴 阅读(2876) 评论(0) 推荐(2)
摘要: 在MongoDB中,更新单个doc的操作是原子性的。默认情况下,如果一个update操作更新多个doc,那么对每个doc的更新是原子性的,但是对整个update 操作而言,不是原子性的,可能存在前面的doc更新成功,而后面的doc更新失败的情况。由于更新单个doc的操作是原子性的,如果两个更新同时发 阅读全文
posted @ 2016-08-22 19:14 悦光阴 阅读(6308) 评论(0) 推荐(5)