最新Sybase数据库性能调优

合集下载

sybase数据库慢的请留意

sybase数据库慢的请留意

sybase数据库慢的请留意数据库系统在当今的信息技术领域中发挥着重要作用,为各种应用程序的数据存储和管理提供支持。

然而,有时候我们可能会遇到Sybase数据库运行缓慢的问题。

本文将讨论一些可能导致Sybase数据库变慢的原因,并提供一些解决方案和优化策略。

一、索引设计不合理索引在数据库中起到加速查询操作的作用。

然而,当索引设计不合理时,可能会导致数据库查询变慢。

比如,过多的索引会增加数据库维护的负担,而过少的索引则会导致查询性能下降。

解决方案:对数据库进行分析,评估每个表的查询模式和频率,并根据这些信息,合理地设计索引。

避免创建过多冗余的索引,以免影响数据库性能。

二、存储空间不足Sybase数据库的存储空间管理对数据库的性能和稳定运行至关重要。

当存储空间不足时,数据库的读写操作会变慢。

此外,如果没有进行定期的空间清理,数据库中存储的日志文件会不断增长,进一步导致数据库性能下降。

解决方案:定期监控数据库的存储空间使用情况,合理规划并扩展存储空间。

同时,设置定期的空间清理任务,删除过期的日志文件等。

三、查询语句不优化编写高效的查询语句是提高数据库性能的关键。

当查询语句没有经过充分优化时,可能会导致数据库响应变慢。

解决方案:对于复杂的查询语句,使用Sybase提供的查询优化工具(如Explain Plan)进行分析,找出影响查询性能的因素,并进行优化。

避免使用不必要的子查询或者多次嵌套的查询操作。

四、硬件性能问题数据库的性能受到硬件的限制。

如果数据库运行在低配置的硬件环境下,可能会导致数据库响应变慢。

解决方案:评估数据库运行所在的硬件环境,确保硬件配置满足数据库的需要。

如果硬件配置有限,可以考虑升级硬件或者将数据库迁移到更高配置的服务器上。

五、数据库统计信息不准确数据库需要根据统计信息来优化查询执行计划。

如果数据库的统计信息不准确或者过期,会导致数据库查询慢。

解决方案:定期更新数据库的统计信息,以提高查询的准确性和效率。

SYBASE系统参数调整

SYBASE系统参数调整

SYBASE系统参数调整1. max memory:此参数用于指定SYBASE数据库服务器在计算机中使用的最大内存量。

通过将此参数设置为较大的值,可以提高该数据库服务器的性能。

如果可用的内存较少,则应适当减小此值。

2. number of engines:此参数用于指定SYBASE数据库服务器使用的引擎数量。

增加此参数的值可以提高并发访问性能。

然而,将该值设置得太高可能会浪费资源。

一般来说,使用与服务器CPU数量相同的值是安全的做法。

3. max scan parallel degree:此参数用于指定SYBASE数据库服务器执行并行扫描时使用的最大并行度。

通过将此参数设置为较大的值,可以提高并行扫描的性能。

4. sys statistics:此参数用于指定数据库服务器在自动生成查询计划时使用的统计信息的有效期限。

适当设置此参数的值可以提高查询性能。

默认情况下,此参数的值设置为30天。

5. max degree of parallelism:此参数用于指定SYBASE数据库服务器在执行并行查询时使用的最大并行度。

增加此参数的值可以提高查询性能。

然而,将该值设置得太高可能会增加系统负载。

6. max worker processes:此参数用于指定SYBASE数据库服务器使用的最大工作进程数量。

适当增加此参数的值可以提高并发性能。

默认情况下,此参数的值设置为255,但在大型服务器上,可能需要适当增加此值。

7. tempdb设备数:tempdb是SYBASE数据库服务器用于处理临时数据的数据库。

将tempdb数据库分配到多个设备上可以提高临时数据处理的性能。

8. prefetch parallel degree:此参数用于指定SYBASE数据库服务器在执行预取操作时使用的并行度。

适当增加此参数的值可以提高查询性能。

9. max rows per stack:此参数用于指定SYBASE数据库服务器在语句执行期间允许的最大行数。

Sybase数据库性能优化研究

Sybase数据库性能优化研究

Sybase数据库性能优化研究摘要:文章从Sybase数据库性能优化的重要性出发,进而论述了Sybase数据库优化的方针,最终对Sybase数据库性能优化进行了重点的探究。

关键词:Sybase数据库;性能优化;研究1.前言由于企业的不断发展,对数据的管理由开始的文档管理到现在的专门的数据库管理软件,我们对数据的要求越来越高,不但要确保数据的安全,还要访问数据访问的速度,数据库中数据的性能直接影响到系统的性能,所以了解数据的性能对访问数据的访问速度及数据的检查是有利的。

2.Sybase数据库性能优化的重要性由于科学技术的不断发展,计算机技术已广泛运用于我们生活的方方面面。

计算机系统在中国各行各业中发挥着重要作用,大大提升了大家的管理效率和水平,是中国经济基础建设和发展的强大动力。

为了确保业务的正常发展,降低系统的硬件投入,管理人员需求不断的对系统进行改善,并对数据库系统进行优化。

Sybase数据库是一种根据客户/服务器系统结构的数据库,布置和运转于操作系统中,用于大型数据库的构建和管理。

根据运用条件和实践需求,我们需求对Sybase数据库系统的各个层面进行优化,使其各个性能指标得到访问。

3.Sybase数据库优化的方针3.1访问数据吞吐量吞吐量的计算方法是数据库系统处理的业务量除以时间。

为了实现访问吞吐量的方针,一般选用两种方法,一种是在同样的资源条件下处理完成更多的业务,一种是增加资源,从而使系统完成一样业务工作量时所用的时间缩短。

在数据库优化范畴,联机业务处理对吞吐量的重视度较高,联机业务处理要实时地对很多的数据进行处理,高吞吐量有助于访问系统的处理能力。

3.2缩短系统呼应时间系统的呼应时间是指用户宣布操作套去,到系统将呼应套去的成果展示给用户之间的时间距离。

某些数据库系统能够完成高吞吐量,但这一性能只标明系统的业务处理能力,而系统的呼应时间是影响到用户运用体会的重要因素。

3.3访问多用户访问能力Sybase数据库管理系统一般要在同一时间为多个用户供给数据管理服务,而用户的规划由于实践运用的不一样而各异。

sybase 性能优化经验谈

sybase 性能优化经验谈

sybase 性能优化经验谈使用sybase数据库多年,有些经验,在数据库部署配置得当,平时监控维护做到位情况下,除此之外数据库的性能问题80%将会是由sql语句引起。

在编写sql语句时候,个人经验,以下几个问题中有大部分跟编写sql有关,必须引起重视。

经验一、where 条件左边最好不要使用函数,比如:select ... where datediff(day,date_column,getdate())>0这样即使在date_column列上建立了索引,也可能不会使用索引,而使用全表扫描。

这样的语句要重新规划设计,保证不使用函数也能够实现。

通过修改,一个系统过程的运行效率提高大约几十倍甚至上百倍!此外不要使用诸如like '%ab',不能充分利用索引,而要在%前加字符。

经验二、两个比较字段最好使用相同数据类型,而不是兼容数据类型。

比如int 与numeric(感觉一般不是太明显)。

经验三、复合索引的非前导列做条件时,基本没有起到索引的作用。

比如create index idx_tablename_ab on tablename(a,b)update tablename set c = XX where b>= XXX and ...在这个语句中,只用了索引列b而没用索引列a做查询条件,基本上索引没有发挥作用。

导致表扫描引起blocking 甚至运行十几分钟后报告失败。

一定要认真检查改正措施:在接口中附加条件update tablename set c = XX where a = XXX and b>= XXX或者建立索引类似于create index idx_tablename_ba on tablename(b,a)经验四、多个大表的关联查询,如果性能不好,并且其中一个大表中取的数据比较少,可以考虑将查询分两步执行。

先将一个大表中的少部分数据select * into #tmp from large_tablewhere ...然后再用#tmp 去做关联,效果可能会好不少。

Sybase数据库性能优化的具体过程

Sybase数据库性能优化的具体过程

Sybase数据库性能优化的具体过程用一个实例讲解了Sybase数据库性能优化的具体过程,具体内容请参考下文:共享锁sp_getapplock 锁定应用程序资源sp_releaseapplock 为应用程序资源解锁SET LOCK_TIMEOUT 1800 锁超时期限设置sp_configure 'deadlock checking period',5000 设置锁检测周期sp_configure 'lock wait period',5000 设置锁的等待时间sp_setrowlockpromote 设置基本个表的最大行锁升级数(锁数)sp_setrowlockpromote 'TABLE',TREECODE,500,500,100sp_setrowlockpromote 'TABLE',LCD05,500,500,100[Lock Manager]number of locks = 50000 #锁数deadlock checking period = DEFAULTfreelock transfer block size = DEFAULTmax engine freelocks = DEFAULTlock spinlock ratio = DEFAULTlock hashtable size = DEFAULTlock scheme = DEFAULTlock wait period = DEFAULTread committed with lock = DEFAULT当很多事务同时访问同一个数据库时,会加剧锁资源争夺,严重时事务之间会发生死锁。

可用sp_object_stats查明死锁位置。

该过程报告资源争夺最激烈的10张表、一个数据库中资源争夺的表和单个表的争夺情况。

语法为sp_object_stats interval [, top_n [, dbname [, objname [, rpt_option ]]]],查看锁争夺情况只需设置interval为“hh:mm:ss”。

Sybase数据库优化建议书

Sybase数据库优化建议书

Sybase数据库优化建议书修改记录主要针对sybase12.0和sybase sybase12.5一、操作系统核心参数Sybase12.0下面以使用操作系统管理员root用户身份,运行sam管理工具调整共享内存参数及共享内存段选择Kernel Configuration → Configurable Parameters→使用File菜单下的Search功能搜寻shmmax 参数,调整参数值为1024×1024×1400=1468006400(约1.4G),shmseg 参数使用默认值120 →退出返回sam上一级界面,在弹出的提示框中选择Defer Kernel Creation Until Later调整操作系统异步IO参数Kernel Configuration → Configurable Parameters→将swapmem_on参数设置为0 Kernel Configuration →选择Drivers项目→找到asyndsk →选择菜单上Action项目下的Add Driver(s) to Kernel,这是能够看到asyndsk 驱动程序Pending Status由out 变成了in。

重新启动HP主机,并在启动完毕后确认所配置参数已经生效。

设置操作系统异步IO使用root用户发出如下命令:/etc/mknod /dev/async c 101 4chmod 0660 /dev/asyncchown sybase:sybase /dev/async在操作系统/sbin/rc3.d目录下建立名为S700dsync脚本文件,或者在双机切换脚本的start.sh(/etc/cmcluster/pkg1/start.sh、/etc/cmcluster/pkg2/start.sh)中加入,内容如下/etc/setprivgrp sybase RTPRIO MLOCK CHOWN这个命令使操作系统重新启动后sybase用户仍然能够正常拥有async文件使用权限,确保数据库设备能够使用异步IO。

SybaseIQ性能调优

SybaseIQ性能调优

目录1性能监控 (2)1.1操作系统性能监控 (2)1.2数据库性能监控例程 (2)1.3使用Sybase Cenral性能监控器监控 (2)2数据库参数调优 (3)2.1SybaseIq 12.7 建议设置选项 (3)2.2SybaseIq服务参数说明 (3)2.3文件存放 (4)3数据加载调优 (5)3.1推荐办法 (5)3.2装载数据时提示虚拟内存不足 (5)3.3使用union all 视图以便更快装载 (5)3.4单行处理 (5)4其它调优 (5)4.1选择合适的数据类型 (5)4.2无符号数据类型 (6)4.3性能优化选项 (6)1性能监控1.1操作系统性能监控使用如下命令对操作系统进行性能监控●vmstat●sar●topas●ps1.2数据库性能监控例程●sp_iqconnection 显示连接用户和版本●sp_iqcontext 显示运行参数●sp_iqspaceinfo 输出数据库对象使用空间情况●sp_iqstatus 数据库各种信息展现●sp_iqtablesize 输出制定表的大小●sp_iqgroupsize 输出指定成员如何获得Sybase IQ系统存储过程呢,我们使用select * from sysobjects where name like 'sp_iq%';返回结果中“name”列中显示为系统存储过程,我们可以研究其它的存储过程的含义1.3使用Sybase Cenral性能监控器监控可以按照如下所示使用Sybase Central监控服务器的统计信息。

●选择服务器●在“Statisticcs”选项卡上,右键单击名称并选择“Add to Performance Monitor“●单击“Performance Monitor“选项卡。

Sybase Central 仅跟踪从一个快照到下一个快照的差异,因此,在性能监视器中某些所选统计信息可能显示为无活动。

Sybase数据库性能优化研究

Sybase数据库性能优化研究
摘 要 : 运 行 于 S O UNI 操 作 系统 上 的 s6s 数 据库 管理 系统 的优 化进 行研 究 。大型数 据库性 能 的优化 是 实现 高 对 C X ya e 效率数据操作的基础 ,以双机双工计算机 系统为运行环境 ,研究 了S6s 数据库管理 系统在运行环境层、服务器层、数据 ya e 库层 、应 用 层等 方 面的性 能优 化 解决 方案 ,以 实际的 应 用为 背景 ,分析 讨 论 了 sbs 数据 库 性能优 化 的原理 和方 法 。 实践 va . e
S b s t ba ePe f r a c tm ia i n S u y y a eDa a s r o m n eOp i z t t d o
W a gY pn n a ig
( a g h uB i i ,o ue e tr a g h u 3 0 ,hn ) H n z o udn C mp tr ne, n z o 1 0 3C i l g C H 0 a

L re cl dt ae ef mac p mi tnit ci eh e c nyo tmaiuao ae nda— pe o p t a — a a b s r r neot z i ahe i f i c f a n l nbsdo ul u l cm u r gs e a p o i ao so v 曲 i e da p t i d x e
因,确 定所 需要 达 到 的 目标 ,然 后利 用相 关 的性 能监 测 工具 ,实 现对 S b s 数据 库 性能 的改进 与测 算 ,主要 包括 以下 步骤 : ya e 1确 定 测试 数据 集 。测试 用 的数据 集应 具有 典型 性 ,能够代 .
表 S b s 数 据库 系统 在 实际应 用 中的特 点 , ya e 能够 全面 地 反映系 统

SYBASE 系统参数调整

SYBASE 系统参数调整
go
sp_configure 'allocate max shared mem',1
go
通常配置为系统内存的60-70%,重起生效。
如SYBASE无法正常启动,请调整SYBASE.cfg文件将max memory参数调小。
b) 上述参数生效后,配置data cache 和 procedure cache:
2. 日志设备
sp_deviceattr devname,"dsync",false
3. 临时数据库设备
sp_deviceattr devname,"dsync",false
三. sybase 数据结构调整
1. 数据库对象表、索引。。
(1)对表新建合理的索引,定期分析表
update statistics tabname (不锁表)
sp_configure “optimization goal”,”allow_oltp”
0 0 0
(请您对文章做出评价)
Sybase的 配置参数
Sybase配置参数 sp_configure 'max online engines',4
go
--配置启动cpu个数
4、锁
sp_configure “number of locks”,100000
5、索引对像
数据库空闲状态下运行:sp_countmetadata “open indexes”
正常运行时运行:sp_monitorconfig “open indexes”
来确定一个最佳值,增加10%左右。
sp_configure “number of worker processes”,8 (并行度*并发连接数*1.5倍)

Sybase数据库优化技术和方法

Sybase数据库优化技术和方法

Sybase数据库优化技术和方法Sybase数据库优化技术和方法Sybase数据库是一种高性能、高可靠性的关系型数据库管理系统,广泛应用于各种数据密集型应用程序中。

然而,随着应用程序的日益复杂和数据量的不断增加,Sybase数据库的性能问题也逐渐突显,影响了应用程序的稳定性和响应速度。

因此,对Sybase数据库进行优化是非常必要的。

本文就Sybase数据库的优化技术和方法进行了介绍。

1.查询优化技术查询优化是Sybase数据库优化的重要方面。

对于大量的查询语句,使用正确的优化技术可以大大提高查询性能。

(1)使用索引索引是数据库优化中最常用的技术之一。

通过在表上建立索引,可以加快查询操作的速度,减少数据库服务器的 I/O 操作。

Sybase数据库支持 B-tree、Hash 和 Bitmap 等多种索引类型。

对于不同的查询需求,选择最合适的索引类型可以提高查询性能。

(2)尽量减少复杂查询语句Sybase数据库支持各种查询语句,但是复杂查询语句会使查询时间大大延长,降低数据库性能。

在设计查询语句时,尽量简化语句结构,减少嵌套子查询,避免过多的计算和连接操作。

(3)优化关联查询关联查询是数据库操作中常见的操作,但是不正确的关联查询操作会导致数据库性能下降。

在进行关联查询时,应根据具体情况选择合适的关联方式,如左联接、右联接、全联接等。

2.数据存储优化技术数据存储也是Sybase数据库优化的重要方面。

对于大量的数据存储需求,使用正确的优化技术可以大大提高存储性能。

(1)选择正确的存储引擎不同的存储引擎有不同的优劣点,应根据具体情况选择合适的存储引擎。

Sybase数据库支持多种存储引擎,如 MyISAM 和InnoDB 等。

(2)使用分区表分区表是Sybase数据库中的一种高效存储技术,可以将数据按照一定规则分散到不同的存储区域中,从而提高数据库的性能和可用性。

在设计表结构时,应尽量使用分区表。

(3)定期清理过期数据过多的历史数据占用了数据库的存储空间,降低了数据库的性能。

Sybase性能调优要点

Sybase性能调优要点

Sybase数据库性能调优编者按:在现有软硬件条件下,充分发挥数据库系统的潜能(数据库性能调优)是DBA(数据库管理员)追求的最高境界。

然而,数据库性能调优是一个非常复杂的问题,不仅需要潜心研究数据库的理论知识,更需要参考同行的实践经验。

本期我们特别为DBA选登了一篇有关这方面内容的文章,希望对您的工作有所启迪。

文中提到的方法,主要针对Sybase数据库,但对DB2、Oracle 等大型数据库系统同样也有借鉴意义。

全国铁路客票系统是一个典型的基于数据库的大型应用系统,经过多次的技术改进,现已能够比较全面充分地满足和适应客票发售和预订的需求,是铁路运输管理信息系统中的重点应用。

系统采用Client/Server结构,后台使用Sybase 数据库和Unix操作系统,中间由自行开发的中间件负责连接交易处理和数据库通信。

这样一个遍及全国大小车站、统管全国的铁路客票发售系统,其重要性不言而喻。

特别是节假日铁路售票高峰期,客票主机一旦出现故障,造成停机,便会直接影响售票,极大地影响铁路正常运营。

因此,如何深入调整Sybase数据库的性能,保证数据库的高可用性,以满足日益增长的客票网络的需求,是每一个地区中心和每一个车站的数据库管理员的重要课题。

本文将结合铁路客票系统,对如何调整优化Sybase数据库的性能进行较深入的论述。

何谓数据库性能调优数据库性能一般用两个方面的指标来衡量:响应时间和吞吐量。

响应越快,吞吐量越大,数据库性能越好。

不过,响应时间和吞吐量并不是都能一起得到改善的。

Sybase数据库性能调优可以从四个方面进行:●操作系统级:对网络性能、操作系统参数、硬件性能等做改进。

●SQL Server级:调整存取方法,改善内存管理和锁管理等。

●数据库设计级:采用降范式设计,合理设计索引,分布存放数据等。

●应用程序级:采用高效SQL语句,合理安排事务,应用游标,处理锁。

本文将对除操作系统级以外的三个方面的内容进行讨论,其中SQL Server 部分提到的概念只适用于Sybase数据库,但第三、第四方面讨论的内容同样适用于Sybase外的其他数据库。

sybase优化-使用索引提高性能

sybase优化-使用索引提高性能

i-6
何时不应该建立索引
在查询中很少或从不引用的列并不从索引获 益,因为系统很少必须根据这些列中的值搜 索行。 相对于表中行数而言有许多重复值但几乎没 有唯一值的列并不从索引真正获益。 如果系统确实必须搜索未建索引的列,则搜 索将逐行进行。执行这种扫描所花的时长与 表中的行数成正比。

i-7
i - 12
使用聚簇或非聚簇索引与其索引顺序不同。非聚簇 索引的叶级包含指向数据页上的行的指针。更确切地说,每 个叶页包含索引值以及指向该值所在行的指针。换句话说, 非聚簇索引在索引结构与数据本身之间有一个额外的级别。 表中最多允许有 249 个非聚簇索引,通过每个此类索引都可 以按不同的排序顺序访问数据。 使用聚簇索引查找数据几乎总是比使用非聚簇索引查找数据 要快。此外,在检索许多具有连续键值的行时(即在经常搜 索某个范围的值的列上)聚簇索引很有利。找到第一个键值 所在的行之后,后继索引值所在的行在物理上一定相邻,因 而不需要进一步搜索。 如果不使用关键字 clustered 和 nonclustered, Adaptive Server 将 创建非聚簇索引。

i-3
索引类型
本地索引 — 本地索引是一个索引子目录树,它仅编 制一个数据分区的索引。可以对本地索引进行分区 ,并且对于所有类型的分区表都支持本地索引。 全局索引 — 全局索引编制表中所有数据分区的索引 。对循环分区表支持非分区全局聚簇索引,而对所 有类型的分区表支持非聚簇全局索引。不能对全局 索引进行分区。

i-2
索引类型
组合索引 — 这些索引涉及多个列。当两个或更多个 列因其逻辑关系而最好作为一个单位进行搜索时, 请使用此类型的索引。 唯一索引 — 这些索引不允许指定列中任意两行的值 相同。AdaptiveServer 在创建索引(如果数据已经存 在)和每次添加数据时检查重复值。 聚簇索引或非聚簇索引 — 聚簇索引强制 Adaptive Server 持续对表中的行进行排序和重排序,以使其 物理顺序始终与其逻辑(或索引)顺序相同。每个 表只能有一个聚簇索引。非聚簇索引不要求行的物 理顺序与其索引顺序相同。可以使用每个非聚簇索 引以各种排序顺序访问数据。

Sybase数据库性能优化

Sybase数据库性能优化

Sybase数据库性能优化在现有软硬件条件下,充分发挥数据库系统的潜能是DBA追求的最高境界,然而,数据库性能调优是一个非常复杂的问题,不仅需要精通数据库的理论知识,更需要逐渐积累实践经验。

这里主要针对Sybase 数据库简要介绍一下如何进行调优,及调优时所要注意的事项。

Sybase数据库系统的性能的优化,是一项长期且受诸多因素影响的工作,它可划分为以下4个层次:✧SQL Server级:包括对内存的合理分配,锁操作和临时表的使用,与系统配置关联的磁盘的I/O性能。

✧数据库设计级:包括数据库对象的设计,索引的创建,表中数据类型的选择,数据库设备的分配及使用。

✧应用程序级:包括T_SQL查询语句的优化,应用级封锁,事务和游标的使用。

✧操作系统级:包括硬件、操作系统和网络对总体性能的影响。

在数据库应用系统的管理维护中,运行环境引起的性能劣化只有通过硬件的升级才能得到优化,在系统硬件配置和网络设计确定的情况下,影响系统性能的主要是其他三个层次方面的原因。

在此就这三个方面进行简要讨论、总结。

1 SQL Server级的调优1.1 管理共享内存数据库性能优化的首要方面是最优管理内存。

数据库占用的共享内存分成数据缓冲(data cache)、存储过程缓冲(Procedure cache)等几块。

在isql 下使用sp_configure 'cache' 可以看到存储过程缓冲所占百分比(procedure cache percent),整个数据缓冲大小(total data cache size)等参数。

1.1.1 存储过程缓冲(procedure cache)存储过程缓冲保持以下对象的查询计划:Procedures :存储过程Triggers :触发器Views :视图Rules :规则Defaults :缺省Cursors :游标存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。

简单谈谈 Sybase 数据库的性能优化

简单谈谈 Sybase 数据库的性能优化

在一个大型的数据库中,性能成为人们关注的焦点之一,如何让数据库高效有效的运行成为广大数据库管理人员和开发人员必须要考虑的问题。

性能是一个应用或多个应用在相同的环境下运行时对效率的衡量。

性能常用响应时间和工作效率来表示。

响应时间是指完成一个任务花费的时间,可以从以下三方面来减少响应时间:·减少竞争和等待的次数,尤其是磁盘读写等待次数·利用更快的部件·减少利用资源所需的时间绝大多数性能的获得来自于优秀的数据库设计、精确的查询分析和适当的索引。

最好性能的获得能够通过确立优秀的数据库设计,在开发时学会使用SQL Server查询优化器来实现。

为了取得更好的数据库性能,我们就需要对数据库进行优化,减少系统资源的竞争,如对数据cache,过程cache,系统资源和CPU的竞争。

在SQL Server中,有如下优化层次:·应用层——大部分性能的获得来自于对你的SQL应用中查询的优化,这必须是以好的数据库设计为基础的。

·数据库层——应用共享在数据库层中的资源,这些资源包括硬盘,事务日志和数据cache。

·服务器层——在服务器层有许多共享的资源,包括数据高速缓存,过程高速缓存,锁,CPU等。

·设备层——指的是存储数据的磁盘及其控制器,在这一层,你应尤其关注磁盘的I/O。

·网络层——指连接用户和SQL Server的网络。

·硬件层——指可利用的CPU。

·操作系统层——理想地,SQL Server是一台机器的唯一主要应用,它必须和操作系统以及其他sybase软件,如Backup Server或SQL Server Monitor共享处理器、内存以及其他资源。

在大多数情况下面,我们是对应用层进行优化,,因为对应用性能的优化是大家最乐于接受的功能,其结果能被观测及检验,查询的性能是SQL应用的整个性能的一个关键。

应用层上的问题包括以下内容:·决策支持VS.和在线事务处理(OLTP)需要不同的性能策略·事务设计能够减少并发,因为长的事务保持占用锁,也就减少了其他用户对相关数据的存取·关联一致性对数据修改需要join操作·支持Select操作的索引增加了修改数据的时间·为了安全而设立的审计限制了性能在应用层优化的选项包括:·远程处理或复制处理能够把决策支持从OLTP机器中分离出来·利用存储过程来减少编译时间和网络的利用·利用最少量的锁去满足你的应用需要数据库层的问题包括:·建立备份和恢复方案·在设备上分布存储数据·审计操作影响性能;仅审计你所需的·日常的维护活动将导致性能的降低和导致用户不能操作数据库表在数据库层上优化选择包括:·利用事务日志的阀值来自动转储事务日志防止其超出使用空间·在数据段中用阀值来监视空间的使用·利用分区来加速数据的装入·对象的定位以避免硬盘的竞争·把重要表和索引放入cache中,保证随时取得服务器层的问题有:·应用的类型——服务器是支持OLTP还是DSS,或者两者都支持·所支持的用户数影响优化决策——随着用户数的增加,对资源的竞争会发生改变·网络负荷·当用户数和事务数达到一定的数量时复制服务器或其他分布式处理是一个解决的方法服务器层的优化的选项包括:·优化内存——一个关键的配置参数和其他方面的参数·决策是客户端处理还是服务器端处理——有些处理能在客户端进行吗·配置cache的大小和I/O的大小·增加多个CPU·为空闲时间排定批处理任务和生成报表·工作负荷发生改变,重新配置特定参数·决定是否可能把DSS移到另一个SQL服务器中设备层设备层的问题包括:·主设备、包含用户数据库的设备,用户数据设备,或数据库日志是否要镜像·怎样在设备之间分布系统数据库、用户数据库和数据库日志·为获得对堆表插入操作的高性能,是否有必要进行分区设备层上优化的选项包括:·用多个中等大小的设备及多个控制器可能比用少量的大设备有更好的I/O性能·分布数据库,表和索引以在不同的设备上进行I/O装载网络层实际上,SQL Server的所有用户都是通过网络存取他们的数据。

Sybase服务参数配置与优化

Sybase服务参数配置与优化

Sybase服务参数配置与优化1.服务参数--内存sp_configure "max memory",524288--单位为2K,实际⼤⼩为524288/1024*2MB=1024MBsp_configure "procedure cache size",51200--存储过程数据缓存为100MBsp_cacheconfig "default data cache", "400M" --调整默认的⾼速缓存为400MBsp_cacheconfig "tempdb data cache","200M","mixed" --创建⼀个200MB的数据缓存⽤于绑定tempdb库sp_bindcache "tempdb data cache",tempdb --重启服务后绑定--CPUsp_configure "max online engines",2--根据服务器环境配置CPU数量sp_configure "number of engines at startup",2--启动时使⽤CPU数量,不能⼤于max online engines--⽹络sp_configure "max network packet size",2048--设置⽹络传送包最⼤值sp_configure "default network packet size",2048--设置⽹络传送包的⼤⼩,不能⼤于max network packet size--锁sp_configure "number of locks",50000--锁的数量sp_configure "page lock promotion HWM",2000sp_configure "page lock promotion LWM",200sp_configure "page lock promotion PCT",75sp_configure "row lock promotion HWM",2000sp_configure "row lock promotion LWM",200sp_configure "row lock promotion PCT",75--其它sp_configure "number of user connections",200--⽤户最⼤连接数sp_configure "number of device",20--设备最⼤数量2. 临时数据库处理a.删除tempdb的master设备1)增加tempdb设备disk init name = 'TEMPData',physname = 'd:\SYBDATA\TEMPData.dat',size = '1G',dsync = false goalter database tempdb on tempdb='1G' with override2) 从段中移除master设备sp_dropsegment "default",tempdb,mastergosp_dropsegment logsegment,tempdb,mastergosp_dropsegment system,tempdb,mastergo3) 从系统表⾥移除master设备use mastergosp_configure "allow updates to system tables",1godelete from sysusages where dbid=2 and lstart=0----dbid=2是tempdb,lstart=0是master设备goupdate sysusages set lstart=0 where dbid=2 ----这⾥只考虑⼀个tempdb设备,多个则不更新gosp_configure "allow updates to system tables",0 ----恢复系统表不允许修改4) 重启服务b.增加多个临时数据库1)增加设备DEV_TEMP_DATA2,容量与原来的tempdb相当2)create temporary database tempdb2 on DEV_TEMP_DATA2=2000 --创建名字为tempdb2的临时数据库3)sp_tempdb 'add',tempdb2,'default' --加⼊到默认组c.绑定⽇结⽤户DAILY到指定的临时数据库1)参照a创建⼀个临时数据库dailytempdb2)sp_tempdb 'bind','LG','DAILY','DB','dailytempdb'注:也可以为sa绑定⼀个专⽤的tempdb,如: sp_tempdb 'bind','LG','sa','DB','satempdb'd. 查看属于默认组的临时数据库1)sp_tempdb 'show'。

SYBASE内部培训-数据库应用调优

SYBASE内部培训-数据库应用调优

26.1.1 ASE的优化器
ASE处理一个查询语句的全过程如下: 1.首先对SQL语句进行语法分析,确保SQL语句的语法正确 2.对查询进行优化,生成最优的查询计划。 主要考虑的问题有: ·表和它的大小(行数,数据页) ·表上索引类型和它是否能覆盖查询的搜索变量(SARGs) ·连接的顺序(包括子查询) ·是否有集函数 ·索引中关键字的密度和分布 ·逻辑和物理读写的开销 ·数据缓冲区的大小、I/O的大小和缓冲策略 3.对查询计划进行编译。 4.执行查询,并把结果返回给用户。
给出每一步查询的类型
• FROM TABLE
tablename 说明了查询的数据来源,tablename有可能是一工作表 。在表的连接查询中,”FROM TABLE”信息的顺序 也说明了查询优化器在做表连接时选择的表的顺序
例: set showplan on select authors.au_id, au_fname, au_lname from titles, titleauthors, authors where authors.au_id = titleauthor.au_id and titleauthor.title_id = titles.title_id and authors.au_lname = "Bloom" QUERY PLAN FOR STATEMENT 1 (at line 1) STEP 1 The type of query is SELECT. FROM TABLE authors /* 数据来源表 */ Nested iteration. /* 嵌套循环扫描 */ Index: au_lname_ix /* 使用索引au_lname_ix */ Ascending scan. /* 升序扫描 */ Positioning by key /* 利用key定位 */ Keys are: au_lname /* key是au_lname Using I/O Size 2 Kbytes. /* I/O块大小为*/ With LRU Buffer Replacement Strategy. /* 使用LRU缓冲交换策略 */

Sybase_IQ_性能调优。常用调优理论及方法,实际调优案例祥解

Sybase_IQ_性能调优。常用调优理论及方法,实际调优案例祥解
✓应用级调优(!)
– 客户端和应用的调优(设计、SQL程序编写)
Global Technology
Page 7
性能调优的理论
➢性能优化定义
❖系统性能需要生命周期各阶段的努力来保证
✓哪一阶段做不好都会影响系统的性能 ✓设计(架构)和实现是保证系统高性能的基础,对性能的
影响也最大。 ✓在大部分情况下,对应用进行调优(设计和SQL语句调优
Global Technology
Network Server OS Database Server Database Application
Page 6
性能调优的理论
➢性能优化定义
❖性能调优的范围
✓系统级调优
– 硬件、操作系统、网络的调优
✓数据库服务器/数据库级调优(!)
– 通过各种监控方法标识问题和瓶颈,然后通过调整相关数据库服 务器/数据库选项、参数,或者调整数据库存储等方法以改进性 能
➢ 不是一个“万能型”数据库,如果使用不当,反而会 丧失优势、甚至带来严重问题
➢ 在决定一个应用系统是否选择IQ产品时,一个非常重 要的因素是对应用系统进行分析,看看他是什么类型 的系统,是否符合Sybase IQ的使用条件
Global Technology
Page 15
IQ 架构
Global Technology
Page 17
Sybase IQ Server架构
Server Front End
Shared with ASAnywhere (ASA)
Handles Connections
Parses Incoming Statements
Cross-DB Decomposition (CIS)

Sybase数据库性能优化

Sybase数据库性能优化

Sybase数据库性能优化在现有软硬件条件下,充分发挥数据库系统的潜能是DBA追求的最高境界,然而,数据库性能调优是一个非常复杂的问题,不仅需要精通数据库的理论知识,更需要逐渐积累实践经验。

这里主要针对Sybase 数据库简要介绍一下如何进行调优,及调优时所要注意的事项。

Sybase数据库系统的性能的优化,是一项长期且受诸多因素影响的工作,它可划分为以下4个层次:✧SQL Server级:包括对内存的合理分配,锁操作和临时表的使用,与系统配置关联的磁盘的I/O性能。

✧数据库设计级:包括数据库对象的设计,索引的创建,表中数据类型的选择,数据库设备的分配及使用。

✧应用程序级:包括T_SQL查询语句的优化,应用级封锁,事务和游标的使用。

✧操作系统级:包括硬件、操作系统和网络对总体性能的影响。

在数据库应用系统的管理维护中,运行环境引起的性能劣化只有通过硬件的升级才能得到优化,在系统硬件配置和网络设计确定的情况下,影响系统性能的主要是其他三个层次方面的原因。

在此就这三个方面进行简要讨论、总结。

1 SQL Server级的调优1.1 管理共享内存数据库性能优化的首要方面是最优管理内存。

数据库占用的共享内存分成数据缓冲(data cache)、存储过程缓冲(Procedure cache)等几块。

在isql 下使用sp_configure 'cache' 可以看到存储过程缓冲所占百分比(procedure cache percent),整个数据缓冲大小(total data cache size)等参数。

1.1.1 存储过程缓冲(procedure cache)存储过程缓冲保持以下对象的查询计划:Procedures :存储过程Triggers :触发器Views :视图Rules :规则Defaults :缺省Cursors :游标存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。

SYBASE_系统参数调整

SYBASE_系统参数调整

SYBASE_系统参数调整在SYBASE数据库中,系统参数的调整对于数据库的性能和稳定性非常关键。

合理的设置可以提高数据库的性能,降低系统的负载,防止因为参数不合适而引发的数据库故障。

下面是一些常见的SYBASE系统参数及其调整方法:1. max memory(最大内存):控制SYBASE数据库系统可以使用的最大内存。

可以根据服务器的硬件配置和数据库的负载情况来调整该参数。

一般建议将该参数设置为服务器可用内存的70-80%。

2. number of worker processes(工作进程数量):控制着SYBASE数据库系统并行处理查询的能力。

可以适当增加该参数的值来提高并行处理的能力,进而提高数据库的性能。

一般建议将该参数设置为服务器的逻辑CPU数量的2倍。

3. lock promotion threshold(锁提升阈值):控制着SYBASE数据库系统在锁的级别上升之前可以允许的最大锁的数量。

可以根据数据库的并发需求来调整该参数。

一般建议将该参数设置为每个数据库连接的平均活跃事务数的两倍。

4. tempdb相关参数:SYBASE数据库系统的临时数据库tempdb对于查询的执行计划和排序操作非常重要。

可以调整tempdb相关参数来优化查询的性能。

例如,可以增加tempdb的数据文件的数量和大小,增加tempdb log的大小等。

5. query plan缓存相关参数:SYBASE数据库系统会缓存查询的执行计划,以便在下次查询时可以直接使用缓存的执行计划,提高查询的性能。

可以调整query plan缓存相关参数来优化查询的性能。

例如,可以增加query plan缓存的大小,增加query plan的最大生命周期等。

6. network packet size(网络数据包大小):控制着SYBASE数据库系统在与客户端通信时每个数据包的大小。

可以根据网络带宽和延迟情况来调整该参数。

一般建议将该参数设置为2048字节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S y b a s e数据库性能调优Sybase数据库性能调优1.5用sp_sysmon可以得到数据库系统的性能基准报告,但要在比较稳定的状态下产生,方可作为参考和对照的依据。

1.6 理解存储方法只有清楚数据库存储数据的底层细节,如数据页、索引页的物理结构,每一行的大小计算,不同类型列占用的宽度等等问题,才能对各种调优措施有个深入领会。

关于这个问题,比较复杂和细致,请自行参阅有关书籍。

一般地,对于更改数据的操作,要尽量促进数据库进行直接更新( Direct Updates ),所以要遵守以下几条原则:1)除非必要,避免使用允许null值的列和可变长度的列。

2)如果varchar 和varbinary 列填充得比较满,毫不犹豫转成 char 和binary 列。

对于建表时指定的页填充率(page fillfactor)参数,要权衡确定数值大小。

一般:小值,适合于有许多随机插入的表,该表的数据经常被删除,又经常被增加;大值,适合于大多数的数据被增加到表末尾,如客票系统的售票存根和退票存根表。

2 SQL Server级的调优2.1 管理共享内存数据库性能优化的首要方面是最优管理内存。

数据库占用的共享内存分成数据缓冲(data cache)、存储过程缓冲(Procedure cache)等几块。

在isql 下使用 sp_configure 'cache' 可以看到存储过程缓冲所占百分比(procedure cache percent),整个数据缓冲大小(total datacache size)等参数。

2.1.1 存储过程缓冲(Procedure cache)存储过程缓冲保持以下对象的查询计划:Procedures :存储过程Triggers :触发器Views :视图Rules :规则Defaults :缺省Cursors :游标存储过程不可重入,意即每个并发用户调用都会在内存中产生一个拷贝。

Procedure, triggers, and views 当它们被装载到procedure cache中时,被查询优化器优化,建立查询计划。

如果存储过程在缓冲中,被调用时就不需要重新编译。

如果procedure cache太小,存储过程就会经常被其他调入内存的存储过程冲洗掉,当再次被调用时,存储过程又被调入内存,再重新编译,用户请求因此不得不等待。

最严重的情况,如果procedure cache不够,存储过程甚至都不能运行。

所以在内存足够的情况下,procedurecache percent 参数尽可能大一些。

2.1.2 数据缓冲(Data Cache)数据缓冲用来缓存数据页和索引页,是除去存储过程缓冲,系统其他占用的缓冲外的剩余内存空间。

通过给服务器增加物理内存扩大数据缓冲,是最有效的方法。

当然,如果不能加内存,就只能通过减少存储过程缓冲的比例等方法来扩大数据缓冲了。

通过 sp_configure "extent I/O buffers", 20(可调)命令,在Data Cache中保留一些页专用于创建索引时使用,可以显著提高创建索引的性能。

但要注意每开辟一个缓冲占用16K 字节的系统内存。

2.1.3 命名缓冲通过如下的命令:1> sp_helpcache2> go查看某客票数据库中命名缓冲,得到的结果如下:Cache Name Config Size Run Size Overhead------------------------------------- ---------- ----------DS30_Tran_Log 20.00 Mb 20.00 Mb 2.05 MbSystemtable 20.00 Mb 20.00 Mb 2.05 Mbdefault datacache 0.00 Mb 4462.86 Mb 464.97 Mbleft_base_center 16.00 Mb 16.00 Mb 1.57 Mbprice_cache 8.00 Mb 8.00 Mb 0.85 Mb可以看出有4个命名缓冲,分别绑定客票系统的应用日志表、一些重要且常用的系统表、余票表、票价系列表,另外1个是缺省数据缓冲。

这种配置还不是最合理,应该进一步把Systemtable这个命名缓冲细分成很多个,每一个单独存放一张系统表。

2.1.4 缓冲策略缓冲策略是指把数据提前读入内存的机制,分预取策略(Prefetch Strategy,即大I/O策略)和取后马上丢弃策略(Fetch-and-Discard)、提示策略(Hints)等几种。

可以在三个级别上设置表数据的预取策略(Prefetch Strategy,即大I/O策略)于:对象级,会话级,查询级。

如果三个级别上都有设置,它们发生作用的优先顺序是:对象级> 会话级 > 查询级。

对于如何在查询级利用指定的缓冲池,可以查看下面例子(使用4K缓冲池):select au_fname,au_lnamefrom authers(prefetch 4)where au_id in (A372020631, ..., A1887081515 )goDSS应用往往得益于大的I/O,应该放开large I/O strategy预取策略。

如果一个应用倾向于OLTP特征,用户能在会话级关掉Prefetch来提高性能。

对于OLTP应用,关闭large I/O strategy预取策略。

对于所取到的页不会有重用的情况,放开fetch-and-discard策略。

客票系统对存根数据进行统计的应用,如财收日结账,营销分析数据整理模块和综合查询等,都可以利用这一结论。

查看几个操作频繁且较大的表上的缓冲策略,用如下命令:sp_cachestrategycenter,seat_areasp_cachestrategycenter,sale_record05052.2 管理锁2.2.1 页锁升级阀限优化锁的重要考虑是设置页级锁升级升级成表级锁的阀限。

要尽量避免页锁很快升级成表级锁。

在某客票数据库中,用sp_configure ‘lock’可以看到如下结果:deadlock checking period 500 0 1000 1000number of locks 5000 46875 200000 200000page lock promotion HWM 200 0 10000 10000page lock promotion LWM 200 0 200 200page lock promotion PCT 100 0 90 90可以看到页锁升级的阀限有三个:HWM(最高点)为10000,LWM(最低点)为200,PCT为90。

Sybase数据库内部根据PCT值按公式PCT*TAB_SZ/100得出计算阀限,如果计算阀限 < LWM, 锁升级发生在LWM 值;如果计算阀限 < HWM,锁升级发生在HWM值。

如果 LWM < 计算阀限 < HWM ,锁升级发生在PCT*TAB_SZ/100值。

锁升级阀限设置分对象级和服务器级两种。

针对对象级设置(数据库上的表或表上的索引),配置命令是:sp_setpglockpromote{"database" | "table"}, objname, new_lwm,new_hwm, new_pct针对服务器级设置,配置命令是:sp_setpglockpromoteserver, NULL, new_lwm, new_hwm, new_pct。

如果要删除掉对象级上的页锁升级阀限,用:sp_dropglockpromote{"database" | "table"}, objname2.2.2 减少锁争夺的方法:1)降范式设计数据库,创建冗余表。

2)把堆表(没有聚族索引的表)分区。

3)对于小表,使用fillfactor和max_rows_per_page来减少行密度,从而使各行数据分布到许多页(此方法适用于SQLServer 11版,对于11.9.2版以后的Sybase数据,有了行级锁,此方法必要性不大)。

2.3 管理临时库(tempdb)管理临时库一个重要原则是要避免临时表跨多个设备,可以把tempdb从master设备中分离出来,放到一个单独的设备上去。

这样可以减少存取系统表时对I/O资源的争夺。

用sp_dropsegment 存储过程从master设备中移除tempdb的default段和system段。

为了进一步提高tempdb的I/O速度,可以考虑把tempdb整个放在RAM 驱动器或固态存储设备上,存取速度是一般磁盘的1000倍。

一般情况下,tempdb会非常频繁地争夺和占用缺省数据缓冲,因为查询会话中有许多临时表要创建、计算和删除。

所以推荐把tempdb绑定到它自己的命名缓冲,这样可以防止临时对象在内存中的活动冲洗掉缺省数据缓冲中的其他对象,利于在多个缓冲间展开I/O。

在使用临时表的时候,还有一个原则:尽量缩小表规模和行的宽度,每一行只包括必要的列。

例如在用select * into生成临时表时,如果只需要几个列的数值,就不要用这样的语句,而直接选取需要的列。

2.4 使用多引擎(MultipleNetwork Engines)如果操作系统使用了多个CPU,那么用sp_configure 配置数据库的参数:在线引擎数(max online engines),可以扩展系统的网络I/O容量,分布网络I/O 到各个引擎,从而提高性能,允许更多的用户连接。

在用户登录数据库时,总是先登录到引擎0,由引擎0在可用引擎队列中选择一个挂最少连接的引擎来传递socket描述符,从而重定向连接到那个引擎,由该引擎去处理跟此用户连接相关的所有网络活动。

对于多引擎SMP结构,SQL Server引入了自旋锁(spinlock)的一种数据结构,在多个引擎间共享。

对于不同类型的任务,在哈希表上分配不同的自旋锁,有页锁自旋锁、表锁自旋锁和地址自旋锁。

自旋锁的配置:sp_configure"page lock spinlock ratio", newvalsp_configure"table lock spinlock ratio", newvalsp_configure"address lock spinlock ratio", newval增大数值,可以减少碰撞,提高并发操作度。

但是每一个自旋锁结构要占用256字节的内存。

相关文档
最新文档