摘要:通常,我们很容易观察到数据库服务器的内存和CPU压力。但是对I/O压力没有直观的判断方法。磁盘有两个重要的参数: Seek time、 Rotational latency。正常的I/O计数为:①1000/(Seek time+Rotational latency)*0.75,在此范围内属正常。当达到85%的I/O计数以上时则基本认为已经存在I/O瓶劲。理论情况下,磁盘的随机读计数为125、顺序读...
阅读全文
摘要:上次没有具体说明,宽宽一直在追问这个问题,现在补充如下:如果你是使用的SQL2000,这个问题会更加严重。触发器操作要作为外部事务的一部分,因此instered和deleted两个虚拟表都是写到事务日志中的。因为日志是顺序写入的,所以在把新旧记录写入日志时,会阻止其它事务写入。同时,读取日志时也会因为有其它写入时而被阻塞。这个无疑给并发操作带来很大影响。SQLSERVER在内部会把触发器作为一个存...
阅读全文
摘要:这要从ODS(Open Data Service)"开放数据服务"说起。它的主要职责是管理连接;SQL的线程服务和将结果集、状态值及消息发送给客户。结果集使用TDS(Tabular data stream)表格数据流进行传送,它除了包含所需要的数据之外,还有一些描述信息:如列名、类型、通信的令牌等等。因此,这也是为什么我觉得在存储过程中只返回一行记录时,使用输出参数能减少网络字节数的原因,因为它少...
阅读全文
摘要:上图显示了一个SQL命令的执行过程,为了能使每个语句能高效的执行,我们应该尽量在关系层来完成所有的操作。举个很简单的例子:SELECT TOP 10 P.Name,P.Color,PSC.Name AS SubcategoryName,PC.Name AS CategoryName,D.DocumentSummary, PP.LargePhoto,SUM(LineTotal) LineTotal ...
阅读全文