随笔分类 -  SQL Server

摘要:上篇文章了解了以上数据存储的结构,索引为什么查询速度快,基本就没什么疑问了。 然而有时候我们虽然建立了索引却发现效能仍然得不到解决。类似这样的问题。需要从多个方面去入手。比如数据库操作的需求、索引的设计是否合理、执行计划的选择。为了便于问题的逐一解决我们仍然需要进一步分析。对于OLTP系统一次请求的时效性是关键。影响时效性的因素一般有阻塞、死锁、锁的数量。运行SELECT、UPDATE、INSERT、DELETE语句,会申请什么样的锁,以及了解执行计划对锁申请数量的影响,了解全面方能够清楚要缓解阻塞和死锁,须在数据库调优上下什么样的功夫。这跟索引有密不可分的关系。本文我们观察一下SELEC.. 阅读全文
posted @ 2013-12-05 14:44 sym_cn 阅读(414) 评论(0) 推荐(0) 编辑
摘要:读完本系列两篇文章后,相信您会对表格中如何加索引有一个清晰的了解。为什么索引查询速度快?大多数人知道因为索引是一个有序的排列所以查询速度快。如果更详细的说明,这里要说到数据表格和索引的组织了。在SQL Server 2005 以前, 一个表格是以一个B树后者一个堆(Heap)存放的,每个B树或者堆,在sys.indexes里面都有一条记录相对应。SQL Server2005以后,引入了分区表(Table Partition)的概念。这里说的分区表不是咱们在解决大数据所使用表分区技术。而是数据库的存储单位“区”,一个区是8个物理上连续的页。言归正传,现在的分区基本上代替了原来表格的概念。一个分区 阅读全文
posted @ 2013-12-05 14:31 sym_cn 阅读(1080) 评论(6) 推荐(3) 编辑
摘要:上篇说SQL Server应用模式之OLTP系统性能分析。五种角度分析sql性能问题。本章依然是SQL性能 五种角度其一“阻塞与死锁”这里通过连接在sysprocesses里字段值的组合来分析阻塞源头,可以把阻塞分为以下5种常见的类型(见表)。waittype,open_tran,status,都是sysprocesses里的值,“自我修复?”列的意思,就是指阻塞能不能自动消失。5种常见的阻塞类型类型waittypeopen_transtatus自我修复原因/其他特征1不为0>=0runnable是的,当语句运行结束后语句运行的时间比较长,运行时需等待某些系统资源(如硬盘读写、CPU或内 阅读全文
posted @ 2013-08-02 09:29 sym_cn 阅读(10023) 评论(5) 推荐(9) 编辑
摘要:OLTP系统的最大特点,是这类应用里有大量的,并发程度比较高的小事务,包括SELECT、INSERT、UPDATE和DELETE。 这些操作都比较简单,事务时间也不会很长,但是要求的返回时间很严格,基本上需要在几秒钟内必须返回。 支持生产流水线的数据库应用,是很典型的OLTP系统。一件产品从原材料到组装成最后的产品,中间会有很多道工序。每道工序本身不复杂,不会花很多时间。工厂需要使用数据库应用记录和监督每一道工序。在流水线上,工人可以扫描产品上的条形码,快速的输入产品加工、处理或检验结果。这些输入和修改过程都会很简单,而且很多在数据库里会是INSERT、UPDATE或DELETE动作。但是.. 阅读全文
posted @ 2013-07-31 14:41 sym_cn 阅读(2164) 评论(4) 推荐(10) 编辑