在执行任何查询时,SQL Server都会将数据读取到内存,数据使用之后,不会立即释放,而是会缓存在内存Buffer中,当再次执行相同的查询时,如果所需数据全部缓存在内存中,那么SQL Server不会产生Disk IO操作,立即返回查询结果,这是SQL Server的性能优化机制。
一,主要的内存消费者(Memory Consumer)
1,数据缓存(Data Cache)
Data Cache是存储数据页(Data Page)的缓冲区,当SQL Server需要读取数据文件(File)中的数据页(...
从最直观,最常见的角度来讲,主要包含如下两点:
优化响应时间
何为“优化响应时间” 呢?说的通俗点,就是经过调优后,执行查询、更新等操作的时候,数据库的反应速度更快,花费的时间更少。
比较常见的,以前执行某条sql查询语句,可能需要3秒钟,加了索引后,1秒钟不到就搞定了。加索引,这也是最典型最"廉价"的优化手段。
在做“优化响应时间”时,需要了解:用户环境,程序,环境,用户和数据等方面的知识。
优...
早期的文章中,曾经提到过性能调优中的DETECT方法论,这里先简单回顾一下DETECT方法论。Discover the problem :发现问题Explore the conditions:探究原因Track down possible approaches:提供可能解决的方式Execute the most likely approach:执行最好可能的解决方式Check of success :确认是否成功(如果没有成功,反复执行上面的步骤)Tie up loose ends :完成剩余工作首先看 Discover ,发现问题是否已经简洁的描述了整个...
前段时间把公司的主数据库切了,分成业务库和报表库,业务库向报表库进行实时的Replication。这个项目的上线提升了系统的性能和可维护性,现在把设计时的考量和所做的工作重新回顾一下,作为备忘。
项目起源
在日常的开发过程中,功能总是先于性能被考虑。只有当用户抱怨系统性能时,我们才开始头痛医头,脚痛医脚地来解决这些性能问题。
公司的CRM和ERP系统叫作Olite,完全是我们组开发的。从无到有,功能不断扩展,原先只有CRM模...
o.name,SUM(p.reserved_page_count) as reserved_page_count,SUM(p.used_page_count) as used_page_count,SUM(casewhen(p.index_id<2) then (p.in_row_data_page_count+p.lob_used_page_count+p.row_overflow_used_page_count)else p.lob_used_page_count+p.row_overflow_used_page_countend) as DataPages,SUM(casewhen (p.index_id<2) then row_countelse 0end) as rowCountsfrom sys.dm_db_partition_stats p inner join sys.ob...
第24/24周 数据库维护(Database Maintenance) Woodytu 2015-09-09 18:55 阅读:1657 评论:2
第23/24周 临时数据库(TempDb) Woodytu 2015-09-03 08:24 阅读:1209 评论:1
第22/24周 等待和I/O延迟统计 Woodytu 2015-08-27 08:02 阅读:935 评论:0
第21/24周 性能监控(PAL工具) Woodytu 2015-08-20 08:05 阅读:1053 评论:0
第20/24周 死锁(Deadlocking) Woodytu 2015-08-13 10:06 阅读:1305 评论:1
第19/24周 锁...
sql server性能调优实战是SQL Server性能调优领域的扛鼎之作,是一线DBA技术专家陈畅亮,吴一晴多年的工作经验结晶。全书以dba的视角深入透彻地讲解数据库底层原理,结合实战场景进行论证,辅以作者深厚的写作功能和丰富的工作经验,为读者循序渐进的解读性能优化过程中的难点和误区。通过阅读sql server性能调优实战,可以为用户提供一条捷径,使用户从整体上把握整个优化的过程,简单地按照章节查阅本书,就可以快速找到简单、高...
DBCC SQLPERF ( LOGSPACE) SELECT TOP 10st.text AS SQL_Full --父级完整语句
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text)ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) as SQL_Part --统计对应的部分语句
, CAST( ((qs.total_elapsed_time / 1000000.0)/qs.execution_count) AS ...
在我们的OLAP的实现中,SQL超级复杂,用了很多的临时表,tempdb在安装时默认选择了安装SQLserver的本地磁盘路径,没有使用磁盘阵列。 在学习PostgreSQL时发现很多专家建议把临时表空间放在SSD上或者使用RAID0+1的方式来提高写入速度,从而提高性能。 因而就 在我们的OLAP的实现中,SQL超级复杂,用了很多的临时表,tempdb在安装时默认选择了安装SQLserver的本地磁盘路径,没有使用磁盘阵列。在学习PostgreSQL时发现很多专家建议把...
相信不少的朋友,无论是做开发、架构的,还是DBA等,都经常听说“调优”这个词。说起“调优”,可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼。当然,也有很多人对此不屑一顾,因为并不是每个人接触到的项目都很大,也不是每个人做的项目都对相信不少的朋友,无论是做开发、架构的,还是DBA等,都经常听说“调优”这个词。说起“调优”,可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼。当然,也有很...
HOW MYSQL USES MEMORY MySQL uses memory for a variety of internal buffers and caches that influence how often it must access files that reside on disk. The more often it has to wait for a disk to respond, the slower it will be. As fast asHOW MYSQL USES MEMORYMySQL uses memory for a variety of internal buffers and caches that influence how often it must access files that reside on disk. The more of...
一.概述
IO 内存是sql server最重要的资源,数据从磁盘加载到内存,再从内存中缓存,输出到应用端,在sql server 内存初探中有介绍。在明白了sqlserver内存原理后,就能更好的分析I/O开销,从而提升数据库的整体性能。 在生产环境下数据库的sqlserver服务启动后一个星期,就可以通过dmv来分析优化。在I/O分析这块可以从物理I/O和内存I/O二方面来分析, 重点分析应在内存I/O上,可能从多个维度来分析,比如从sql server服务启动以来...
一、需求
需求很简单,就是需要查询一个报表,只有1个表,数据量大约60万左右,但是中间有些逻辑。
先说明一下服务器配置情况:1核CPU、2GB内存、机械硬盘、Sqlserver 2008 R2、Windows Server2008 R2 SP1和阿里云的服务器,简单说就是阿里云最差的服务器。
1、原始表结构非常简单的一张表,这次不讨论数据冗余和表字段的设计,如是否可以把Project和Baojian提出成一个表等等,这个是原始表结构,这个目前是没有办法改变的。
2、查...
相信不少的朋友,无论是做开发、架构的,还是DBA等,都经常听说“调优”这个词。说起“调优”,可能会让很多技术人员心头激情澎湃,也可能会让很多人感觉苦恼。当然,也有很多人对此不屑一顾,因为并不是每个人接触到的项目都很大,也不是每个人做的项目都对性能要求很高。
在主流的企业级开发和互联网应用中,数据库的重要性是不言而喻的,而数据库的性能对于整个系统的性能而言也是至关重要的,这里无庸赘述。
sqlserver的性能调...