set showplan on 查询计划信息
set statistics io on
set statistics time on
set noexec on 编译不执行
set fmtonly on 数据库在接收到客户端对数据的请求之后,直接从系统表中获取数据列信息,生成空的结果集直接返回客户端,而不再对磁盘中存储的数据进行检索处理。
先设置set fmtonly on,再设置set showplan on,编译不执行可以看到查询计划信息。但若开启set statistics io on,set statistics time on看不出相关信息,值都为0。
set forceplan on 强迫查询按照FROM子句中指定的顺序使用表。
set table count 10 优化器优化时连接涉及表的张数,增加Table count意味着编译时间也会增加,因为优化器会用更的时间评价各种连接混合体。
sp_cachestrategy 设置状态Bit来开启或者关闭预取和获取-丢弃缓存策略。
sp_cachestrategy db_name, table_name, index_name
sp_cachestrategy db_name, table_name, "table only", mru, "on"
sp_cachestrategy db_name, table_name, "table only", prefetch, "on"
set paralle1_degree 10 设置能够用于查询的并发执行的工作进程最大数目。譔值<=最大并发度配置参数值。
dbcc traceon(302,301)
运行
set statistics io on
set statistics time on
后,执行关联查询获得查询统计信息如下:
Parse and Compile Time 0.
SQL Server cpu time: 0 ms.
Table: table1 scan count 1, logical reads: (regular=1 apf=0 total=1), physical reads: (regular=0 apf=0 total=0), apf IOs used=0
Table: table2 scan count 238, logical reads: (regular=27 apf=0 total=27), physical reads: (regular=0 apf=0 total=0), apf IOs used=0
Total writes for this command: 0
Execution Time 0.
SQL Server cpu time: 0 ms. SQL Server elapsed time: 0 ms.
(1 row affected)
参数说明:
logical reads:
regular 在高速缓存中找到查询所需的某页的次数;在此只对非由异步预取 (APF) 引入的页进行计数。
apf 在高速缓存中找到由 APF 请求所引入的某请求的次数
total regular 和 apf 逻辑读取数的总和
physical reads:
regular 通过常规异步 I/O 将缓冲区引入高速缓存的次数
apf 由 APF 将缓冲区引入高速缓存的次数
total regular 和 apf 物理读取数的总和
apf IOs used 由 APF 引入的缓冲区数,在查询过程中会用到这些缓冲区中的一页或多页
扫描计数(Scan Count):在查询中涉及到的表被访问的次数。在我们的例子中,其中的表只被访问了1次,由于查询中不包括连接命令,这一信息并不是十分有用,但如果查询中包含有一个或多个连接,则这一信息是十分有用的。(一个循环外部的表的Scan Count值为1,但对于一个循环内的表而言,其值为循环的次数。可以想象得到,对于一个循环内的表而言,其Scan Count值越小,它所使用的资源越少,查询的性能也就越高。因此在调节一个带连接的查询的性能时,需要关注Scan Count的值,在进行调节时,注意观察它是增加还是减少了。)
逻辑读取(Logical Reads):这是SET STATISTICS IO或SET STATISTICS TIME命令提供的最有用的 数据。我们知道,数据库在可以对任何数据进行操作前,必须首先把数据读取到其数据缓冲区中。此外,我们也知道数据库何时会从数据缓冲区中读取数据,并把数据读取到大小为8K字节的页中。那么Logical Reads的意义是什么呢?Logical Reads是指数据库为得到查询中的结果而必须从数据缓冲区读取的页数。在执行查询时,数据库不会读取比实际需求多或少的数据,因此,当在相同的数据集上执行同一个查询,得到的Logical Reads的数字总是相同的。(数据库执行查询时的Logical Reads值每一次这个数值是不会变化的。因此,在进行查询性能的调节时,这是一个可以用来衡量你的调节措施是否成功的一个很好的标准。如果 Logical Reads值下降,就表明查询使用的服务器资源减少,查询的性能有所提高。如果Logical Reads值增加,则表示调节措施降低了查询的性能。在其他条件不变的情况下,一个查询使用的逻辑读越少,其效率就越高,查询的速度就越快。)
物理读取(Physical Reads):物理读,在执行真正的查询操作前,数据库必须从磁盘上向数据缓冲区中读取它所需要的数据。在数据库开始执行查询前,它要作的第一件事就是检查它所需要的数据是否在数据缓冲区中,如果在,就从中读取,如果不在,数据库必须首先将它需要的数据从磁盘上读到数据缓冲区中。我们可以想象得到,数据库在执行物理读时比执行逻辑读需要更多的服务器资源。因此,在理想情况下,我们应当尽量避免物理读操作。下面的这一部分听起来让人容易感到糊涂 了。在对查询的性能进行调节时,可以忽略物理读而只专注于逻辑读。你一定会纳闷儿,刚才不是还说物理读比逻辑读需要更多的服务器资源吗?情况确实是这样, 数据库在执行查询时所需要的物理读次数不可能通过性能调节而减少的。减少物理读的次数是DBA的一项重要工作,但它涉及到整个服务器性能的调节,而 不仅仅是查询性能的调节。在进行查询性能调节时,我们不能控制数据缓冲区的大小或服务器的忙碌程度以及完成查询所需要的数据是在数据缓冲区中还是在磁盘 上,唯一我们能够控制的数据是得到查询结果所需要执行的逻辑读的次数。
因此,在查询性能的调节中,我们可以心安理得地不理会SET STATISTICS IO命令提供的Physical Read的值。(减少物理读次数、加快数据库运行速度的一种方式是确保服务器的物理内存足够多。)
一般在数据库的查询优化过程中,Logic Read是至关重要的,它的计数一般与查询出来的结果集数量成正比,与数据读取的速度也成正比。因此,我们便可以从中看出整个查询(复杂语句,包括存储过程等)中的瓶颈所在,从而进行优化。
分享到:
相关推荐
### Sybase性能调优知识点详解 #### 一、概述 Sybase是一种高性能的企业级数据库管理系统,在许多企业级应用中有着广泛的应用。随着业务量的增长,系统可能会遇到性能瓶颈,因此进行有效的性能调优是非常必要的。...
8. **故障排查与性能调优工具**:介绍一系列用于诊断和解决问题的工具,如dbcc命令、错误日志和跟踪文件,以及如何利用它们进行问题定位。 9. **最新版本特性**:如果手册更新至较新版本,可能会包含ASE的新功能和...
### Sybase ASE15数据库调优参数设置 #### 概述 在安装并部署Sybase Adaptive Server Enterprise (ASE) 15之后,为了确保ERP-PS软件能够高效稳定地运行,通常需要对数据库的一些关键参数进行调整。这些参数主要包括...
### SYBASE安装、调优、备份相关知识点 #### 概述 本文档旨在提供一份详细的SYBASE数据库在Solaris 8环境下安装、调优及备份的指导手册。假设读者已经完成了Solaris系统的安装以及必要的GNU软件配置。文档分为三个...
【Sybase 12.5 数据库调优】 在IT领域,数据库调优是一项至关重要的工作,特别是对于Sybase Adaptive Server Enterprise (ASE) 12.5这样的企业级数据库管理系统而言。调优的目标是为了提高数据库的性能,确保系统在...
本文主要探讨了针对Sybase数据库的调优策略,旨在提高其性能和稳定性。以下是一些关键的调优技巧: 1. **数据库安装优化**: - **裸设备使用**:在UNIX环境下,推荐将应用数据库的设备设置为裸设备,这样可以减少...
### Sybase调优与日常维护的关键知识点 #### 配置文件RUN_SYBASE解析 Sybase的配置文件RUN_SYBASE在优化和日常维护中扮演着关键角色。它指示了SYBASE.LOG和SYBASE.cfg的位置,这两个文件分别是Sybase的日志文件和...
### SYBASE ASE 性能调优详解 #### 一、性能定义及度量方法 **性能**是指在特定环境中衡量应用程序或系统的效率。对于Sybase Adaptive Server Enterprise (ASE) 来说,性能主要包括两个方面: 1. **响应时间**:...
### Sybase数据库系统性能调优分析 在当前信息化高速发展的时代背景下,数据库系统作为企业核心应用的基础支撑之一,其性能的高低直接影响到企业的业务效率与用户体验。Sybase数据库作为一种广泛应用于金融、电信等...
【Sybase IQ 性能调优】 Sybase IQ 是一种高效的数据仓库和分析数据库系统,其性能调优是确保系统高效运行的关键环节。本教程主要涵盖以下几个方面: 1. **性能调优的基本理论**: - 理解性能调优的重要性,包括...
### Sybase ASE数据库性能调优知识点详解 #### 一、概览 - **标题与描述**: “Sybase ASE数据库性能调优”旨在介绍如何优化Sybase Adaptive Server Enterprise (ASE) 数据库系统的性能,以实现更高效的数据管理和...
### Sybase ASE15 性能调优关键知识点 #### 一、ASE的系统参数配置 **1.1 内存配置** - **AdaptiveServer的内存结构:** - **缺省数据缓存:** 缓存由一系列双向链接的数据缓冲区组成,用于存储最近频繁访问的...
标题中的“sybase ASE 数据库参数含义及调优设置”是指在使用Sybase Adaptive Server Enterprise (ASE)数据库管理系统时,为了优化性能和资源利用,需要理解和调整的各种数据库配置参数。这些参数涉及到内存管理、...
### Sybase性能调优指南知识点解析 #### 一、概览 Sybase是一款高性能的关系型数据库管理系统,广泛应用于金融、电信、制造业等多个领域。随着业务的发展和技术的进步,提高数据库性能成为了一个不可忽视的问题。...
《Sybase参考手册》是开发者和管理员的重要参考资料,包含了Sybase IQ的所有命令、函数、语法和系统参数。手册详细解释了SQL语法、数据类型、索引、视图、存储过程、触发器以及安全性控制等方面的内容。对于日常的...
ASE性能和调优系列涉及到Adaptive Server Enterprise (ASE) 的查询处理和抽象计划。ASE是SAP公司旗下的一款数据库管理系统,适用于大型的数据处理和复杂事务环境。ASE的性能调优关注的是提高查询处理的速度和效率,...
在Sybase数据库管理系统中,锁是用于控制并发访问...总之,掌握Sybase的锁表检查与解决方法,以及有效利用bcp工具,对于日常数据库维护和性能调优至关重要。通过实践和不断学习,可以更好地应对各种数据库管理挑战。
本文将深入探讨Sybase IQ 12.7的调优策略,包括系统配置、数据库设计、查询优化等方面,帮助用户充分发挥其在商业智能(BI)和数据仓库领域的潜力。 #### 二、系统配置调优 ##### 2.1 硬件资源优化 - **CPU和内存...