远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

数据高速缓存管理

sp_sysmon 报告所有高速缓存的摘要统计信息,以及每个命名高速缓存的 统计信息。

sp_sysmon 报告缺省数据高速缓存和每个命名高速缓存的下列活动:

螺旋锁争用

使用率

高速缓存搜索,包括命中和未命中次数

所有配置的池的池周转率

缓冲区清洗行为,包括清理干净的缓冲区、已在 I/O 中的缓冲区和清 洗脏了的缓冲区。


执行的和拒绝的预取请求

脏读页请求

使用 sp_cacheconfig sp_helpcache 输出帮助分析报告中这一部分的数据。 sp_cacheconfig 提供有关高速缓存和池的信息,而 sp_helpcache 提供有关 绑定到高速缓存的对象的信息。

有关如何使用这些系统过程的信息,请参见 《系统管理指南,卷 2》中的 第 4 章 “配置数据高速缓存”。

有关性能问题和命名高速缓存的详细信息,请参见 《性能和调优系列: 基础知识》中的第 5 章 “内存使用和性能”。


样本输出


数据高速缓存管理


以下样本显示 “数据高速缓存管理”类别的 sp_sysmon 输出。第一个数 据块,“Cache Statistics Summary”包括所有高速缓存的信息。 sp_sysmon 报告每个高速缓存的单独数据块。这些块根据高速缓存名称来识别。虽 然在间隔期间配置了更多的高速缓存,但这里显示的输出样本只包括缺 省数据高速缓存。

---------------------


Cache Statistics Summary (All Caches)

-------------------------------------

per sec

----------

per xact

-----------

count

-------

% of total

--------

Cache Search Summary

Total Cache Hits

39472.3

185026.5

11841696

99.9 %

Total Cache Misses

-----------------------

Total Cache Searches

33.8

------------

39506.1

158.4

------------

185184.9

10139

-------- 11851835

0.1 %

Cache Turnover

Buffers Grabbed

177.0

829.6

53097

n/a

Buffers Grabbed Dirty

0.0

0.0

0

0.0 %


Cache Strategy Summary

Cached (LRU) Buffers

35931.1

168427.1

10779332

98.6

%

Discarded (MRU) Buffers

511.7

2398.4

153500

1.4

%

Large I/O Usage

Large I/Os Performed 46.9 219.9 14071 94.5 %


Large I/Os Denied due to

Pool < Prefetch Size

2.5

11.6

745

5.0 %

Pages Requested

Reside in Another

Buffer Pool

0.3

1.3

80

0.5 %

-----------------------

------------

------------

--------

Total Large I/O Requests

49.7

232.8

14896

Large I/O Effectiveness

Pages by Lrg I/O Cached

171.3

803.1

51398

n/a

Pages by Lrg I/O Used

567.2

2658.7

170157

331.1 %


Asynchronous Prefetch Activity

APFs Issued 9.6

45.0

2878

1.2

%

APFs Denied Due To

APF I/O Overloads 0.0

0.0

0

0.0

%

APF Limit Overloads 0.0

0.0

0

0.0

%

APF Reused Overloads 0.0

0.0

0

0.0

%

APF Buffers Found in Cache

With Spinlock Hel 1.7

7.8

501

0.2

%

W/o Spinlock Held 787.1

3689.5

236128

98.6

%

----------------------- ------------

------------

--------

Total APFs Requested 798.4

3742.3

239507


Other Asynchronous

Prefetch

Statistics

APFs Used

9.4

43.9

2808

n/a

APF Waits for I/O

6.8

31.8

2034

n/a

APF Discards

0.0

0.0

0

n/a

Dirty Read Behavior

Page Requests 0.0 0.0 0 n/a


-----------------------------------------------------------------------------

Cache:default data cache


Spinlock Contention

per sec

----------

n/a

per xact

-----------

n/a

count

-------

n/a

% of total

--------

2.8 %

Utilization

n/a

n/a

n/a

82.9 %

Cache Searches Cache Hits


32731.6


153429.6


9819492


100.0 %

Found in Wash

288.4

1351.7

86508

0.9 %

Cache Misses

-----------------------

Total Cache Searches

10.9

------------

32742.5

50.9

------------

153480.5

3257

--------

9822749

0.0 %


2 Kb Pool

LRU Buffer Grab


123.0


576.7


36908


92.5 %

Grabbed Dirty

0.0

0.0

0

0.0 %

16 Kb Pool

LRU Buffer Grab


10.0


47.1


3012


7.5 %

Grabbed Dirty

----------------------- --

Total Cache Turnover

0.0

----------

133.1

0.0

------------

623.8

0

----------

39920

0.0 %

Buffer Wash Behavior

2 Kb Pool

LRU Buffer Grab


123.0


576.7


36908


92.5 %

Grabbed Dirty

0.0

0.0

0

0.0 %

16 Kb Pool

LRU Buffer Grab


10.0


47.1


3012


7.5 %

Grabbed Dirty

----------------------- --

Total Cache Turnover

0.0

----------

133.1

0.0

------------

623.8

0

----------

39920

0.0 %

Buffer Wash Behavior

Pool Turnover


Cached (LRU) Buffers

30012.1

140681.9

9003640

98.3

%

Discarded (MRU) Buffers

511.7

2398.4

153500

1.7

%


Large I/O Usage

Large I/Os Performed

10.0

47.1

3012

80.2

%

Large I/Os Denied due to Pool < Prefetch Size


0.8


3.9


247


6.6


%

Pages Requested Reside in Another Buffer Pool


1.7


7.8


498


13.3


%

----------------------- ------------

Total Large I/O Requests 12.5

------------

58.7

----------

3757

Large I/O Detail

4 Kb Pool

Pages Cached

0.0

0.0

0

n/a

Pages Used

0.0

0.0

0

n/a

16 Kb Pool

Pages Cached

80.3

376.5

24096

n/a

Pages Used

76.1

356.5

22817

94.7 %

Cached (LRU) Buffers

30012.1

140681.9

9003640

98.3

%

Discarded (MRU) Buffers

511.7

2398.4

153500

1.7

%


Large I/O Usage

Large I/Os Performed

10.0

47.1

3012

80.2

%

Large I/Os Denied due to Pool < Prefetch Size


0.8


3.9


247


6.6


%

Pages Requested Reside in Another Buffer Pool


1.7


7.8


498


13.3


%

----------------------- ------------

Total Large I/O Requests 12.5

------------

58.7

----------

3757

Large I/O Detail

4 Kb Pool

Pages Cached

0.0

0.0

0

n/a

Pages Used

0.0

0.0

0

n/a

16 Kb Pool

Pages Cached

80.3

376.5

24096

n/a

Pages Used

76.1

356.5

22817

94.7 %

Statistics Not Available - No Buffers Entered Wash Section Yet Cache Strategy


Dirty Read Behavior

Page Requests 0.0 0.0 0 n/a


-----------------------------------------------------------------------------

Cache:pub_log_cache

per sec

per xact

count % of total

----------

-----------

---------- -------


Spinlock Contention

n/a

n/a

n/a

0.2

%

Utilization

n/a

n/a

n/a

9.1

%

Cache Searches Cache Hits


3591.9


16837.1


1077574


100.0


%

Found in Wash

0.0

0.0

0

0.0 %

Cache Misses

-----------------------

Total Cache Searches

0.0

------------

3591.9

0.0

------------

16837.1

0

----------

1077574

0.0 %

Pool Turnover

2 Kb Pool

LRU Buffer Grab

0.3

1.3

80

0.8 %

Grabbed Dirty

0.0

0.0

0

0.0 %

4 Kb Pool

LRU Buffer Grab

33.9

158.9

10171

99.2

%

Grabbed Dirty

-----------------------

Total Cache Turnover

0.0

------------

34.2

0.0

------------

160.2

0

----------

10251

0.0

%

Buffer Wash Behavior

Cached (LRU) Buffers

2872.7

13465.9

861817

100.0

%

Discarded (MRU) Buffers

0.0

0.0

0

0.0

%

Large I/O Usage Large I/Os Performed


33.9


158.9


10171


99.2


%

Large I/Os Denied due to Pool < Prefetch Size


0.0


0.0


0


0.0


%

Pages Requested Reside in Another Buffer Pool


0.3


1.3


80


0.8


%

-----------------------

Total Large I/O Requests

------------

34.2

------------

160.2

----------

10251

Large I/O Detail

4 Kb Pool

Pages Cached

67.8

317.8

20342

n/a

Pages Used

67.8

317.8

20342

100.0 %

Cached (LRU) Buffers

2872.7

13465.9

861817

100.0

%

Discarded (MRU) Buffers

0.0

0.0

0

0.0

%

Large I/O Usage Large I/Os Performed


33.9


158.9


10171


99.2


%

Large I/Os Denied due to Pool < Prefetch Size


0.0


0.0


0


0.0


%

Pages Requested Reside in Another Buffer Pool


0.3


1.3


80


0.8


%

-----------------------

Total Large I/O Requests

------------

34.2

------------

160.2

----------

10251

Large I/O Detail

4 Kb Pool

Pages Cached

67.8

317.8

20342

n/a

Pages Used

67.8

317.8

20342

100.0 %

Statistics Not Available - No Buffers Entered Wash Section Yet Cache Strategy


Dirty Read Behavior

Page Requests 0.0 0.0 0 n/a


-----------------------------------------------------------------------------

Cache:tempdb_data_cache


Spinlock Contention

per sec

----------

n/a

per xact

-----------

n/a

count %

----------

n/a

of total

------- 0.0


%

Utilization

n/a

n/a

n/a

8.0

%

Cache Searches Cache Hits


3148.8


14759.8


944630


99.3


%

Found in Wash

7.9

37.0

2365

0.3

%

Cache Misses

-----------------------

Total Cache Searches

22.9

------------

3171.7

107.5

------------

14867.4

6882

----------

951512

0.7

%

Pool Turnover

2 Kb Pool

LRU Buffer Grab

6.8

31.8

2038

69.7

%

Grabbed Dirty

0.0

0.0

0

0.0

%

4 Kb Pool

LRU Buffer Grab

0.1

0.4

24

0.8

%

Grabbed Dirty

0.0

0.0

0

0.0

%

16 Kb Pool

LRU Buffer Grab

2.9

13.5

864

29.5 %

Grabbed Dirty

----------------------- ---

Total Cache Turnover

0.0

---------

9.8

0.0

------------

45.7

0

----------

2926

0.0%

Buffer Wash Behavior

Cached (LRU) Buffers

3046.3

14279.3

913875

100.0

%

Discarded (MRU) Buffers

0.0

0.0

0

0.0

%

Cached (LRU) Buffers

3046.3

14279.3

913875

100.0

%

Discarded (MRU) Buffers

0.0

0.0

0

0.0

%

Statistics Not Available - No Buffers Entered Wash Section Yet Cache Strategy


Large I/O Usage

Large I/Os Performed 3.0 13.9 888 100.0 %


Large I/Os Denied due to

Pool < Prefetch Size

0.0

0.0

0

0.0

%

Pages Requested

Reside in Another

Buffer Pool

0.0

0.0

0

0.0

%

----------------------- ------------

------------

----------

Total Large I/O Requests

3.0

13.9

888


Large I/O Detail

Pages Cached

0.2

0.8

48

n/a

Pages Used

0.2

0.7

47

97.9 %

Pages Cached

0.2

0.8

48

n/a

Pages Used

0.2

0.7

47

97.9 %

4 Kb Pool


16 Kb Pool

Pages Cached

23.0

108.0

6912

n/a

Pages Used

2.9

13.5

864

12.5 %

Dirty Read Behavior

Page Requests 0.0 0.0 0 n/a


Cache Statistics Summary (All Caches)

这部分总结了缺省数据高速缓存和所有组合的命名数据高速缓存的行为。 输出每个数据高速缓存的相应信息。请参见 108 页的 “ Cache Management by Cache


Cache Search Summary

提供有关高速缓存命中和未命中的摘要信息。使用此数据可快速查看高 速缓存设计是否有效。大量的高速缓存未命中次数说明您应考察每个高 速缓存的统计信息。

Total Cache Hits”报告在任何高速缓存中找到所需页的次数。

% of total”报告高速缓存命中次数占高速缓存搜索总次数的百分比。

Total Cache Misses”报告在一个高速缓存中未找到需要的页而必需 从磁盘读取的次数。“% of total”报告在高速缓存中未找到缓冲区的 次数占所有高速缓存搜索次数的百分比。

Total Cache Searches”报告高速缓存搜索的总次数,包括所有组合 的高速缓存命中次数和未命中次数。


Cache Turnover


提供高速缓存周转的摘要:

Buffers Grabbed”报告在所有高速缓存中替换的缓冲区数。“count” 列代表 Adaptive Server 从高速缓存的 LRU 端读取缓冲区代替数据库 页的次数。如果服务器最近重新启动过,缓冲区就会是空的,将页读 入空缓冲区将不会统计在这里。


Buffers Grabbed Dirty”报告读取缓冲区时在高速缓存的 LRU 端找 到脏页而在缓冲区写至磁盘时被迫等待的次数。如果该值不为零,则 应确定哪些高速缓存受到影响,以及磁盘 IO 的性能是否足够并增加 池清洗大小。这代表严重的性能问题。


Cache Strategy Summary

提供使用的高速缓存策略的摘要。

Cached (LRU) Buffers”报告所有高速缓存中位于最近使用最多的 (MRU) 和最近使用最少的 (LRU) 链顶部的缓冲区的总数。

Discarded (MRU) Buffers”报告所有高速缓存中遵循读取放弃策略 的缓冲区 (清洗标记处的缓冲区)的总数。


Large I/O Usage


提供有关所有高速缓存中的大 I/O 请求的摘要信息。如果 “Large I/Os Denied”较高,则应考察单个高速缓存以确定原因。

Large I/Os Performed”衡量执行请求的大 I/O 的次数。“% of total” 是执行的大 I/O 请求占已进行的 I/O 请求总数的百分比。

Large I/Os Denied”报告大 I/O 不能执行的次数。“% of total”报告 拒绝的大 I/O 请求占已进行的请求总数的百分数。

Total Large I/O Requests”报告所有高速缓存的所有大 I/O 请求 (授 予的和拒绝的)数。


Large I/O Effectiveness

帮助确定大 I/O 的性能优势。它将通过大 I/O 引入高速缓存的页数与在高 速缓存中时被实际引用的页数进行比较。如果 “Pages by Lrg I/O Used” 的百分比很低,则意味着引入高速缓存的页中只有很少的页正被查询访 问。请研究各个高速缓存,以确定问题的原因。请使用 optdiag 检查每个 表和索引的 “Large I/O Efficiency”值。

Pages by Lrg I/O Cached”报告由采样间隔期间发生的所有大 I/O 操 作引入到所有高速缓存中的页数。较低的百分比可能表示存在以下情 况之一:

表存储中的分配分段

高速缓存策略不适当


Pages by Lrg I/O Used”会报告在由大 I/O 引入高速缓存后使用的页 的总数。如果没有 “Pages by Lrg I/O Cached”, sp_sysmon 不会显示 此类别的输出结果。


Asynchronous Prefetch Activity 报告

报告所有高速缓存的异步预取活动。

有关每个数据库设备的异步预取的信息,请参见 120 页的 “磁盘 I/O 管理 。有关异步预取的信息,请参见 《性能和调优系列:基础知识》 中的第 6 章 “调优异步预取”。

Total APFs Requested”报告符合预取条件的页的总数,即,在采样间 隔期间发出的所有查询的预先设置大小的总和。“Asynchronous Prefetch Activity”中的其它行提供以下类别的详细信息:

已经预取的页 (“APFs Issued”)

拒绝预取的原因

在高速缓存中找到的页


APFs Issued


系统在采样间隔期间发出的异步预取请求的数量。


APFs Denied Due To


报告未发出 APF 的原因:

APF I/O Overloads”报告由于缺少磁盘 I/O 结构或由于磁盘信号争 用而使 APF 使用被拒绝的次数。

如果此数值很高,则应检查 “Disk I/O Management”中的以下信息:

disk i/o structures 配置参数的值。请参见 122 页的 “ Disk I/O Structures

每个数据库设备的设备信号争用的值,用于确定问题原因。请参 见 125 页的 “ Mirror Semaphore Granted Mirror Semaphore Waited

如果问题是由于缺乏磁盘 I/O 结构引起的,则应将配置参数设置提 高,然后重复测试。如果问题是由于高磁盘信号争用引起的,则检 查高 I/O 发生处的对象物理放置。


APF Limit Overloads”指示已超出可用于异步预取的缓冲池的百分 比。此限制是由 global async prefetch limit 配置参数为服务器整体设置 的。使用 sp_poolconfig 分别对每个池进行调优。

APF Reused Overloads”表示由于页链扭结,或因为在能够访问 APF

引入的缓冲区前这些缓冲区被换出而使 APF 的使用被拒绝。

理想情况下,连续页包含连续行。但是,如果页链从其当前位置跳到 较远磁盘位置处的几页,然后再跳回其原来的位置,则该页将被视 为“扭结”。例如,使用页 1, 2, 396, 397, 3, 4 的页链即为扭结页链。


APF Buffers Found in Cache

在采样间隔期间,在数据高速缓存中找到的来自 APF 预见性设置的缓冲 区数量。异步预取使用快速扫描在数据高速缓存中尝试查找要读取的页, 而不持有高速缓存螺旋锁。如果此操作没有成功,则 APF 在持有螺旋锁 的情况下执行全面扫描。


Other Asynchronous Prefetch Statistics

报告另外三个异步预取统计信息:

APFs Used”报告由异步预取引入到高速缓存并在采样间隔期间使 用的页数。为此报告统计的页数可能已经在采样间隔期间引入到高 速缓存中,或在采样间隔开始之前由发出的异步预取请求引入到高 速缓存中。

APF Waits for I/O”报告进程被迫等待异步预取完成的次数。这表 示预取未能及时发出,从而使页未能在查询需要前位于高速缓存中。 出现一定百分比的 “APF Waits”是合理的。以下一些原因可能导致 任务必须等待:

查询的第一个异步预取请求通常包括在 “APF Waits”中。

每次顺序扫描移动到新的分配单元并发出预取请求时,查询必须 等待直到第一个 I/O 完成。

每次非聚簇索引扫描找到一组限定行并发出页预取请求时,它必 须等待第一页返回。

其它可影响 “APF Waits for I/O”的因素包括需要在每页上完成的处 理量和 I/O 子系统的速度。

APF Discards”表示由异步预取读入并在使用前放弃的页数。“APFs Discards”的值较大可能表示增加缓冲池的大小有助于提高性能,也 可能表示 APF 正在将页引入到查询不需要的高速缓存中。


Dirty Read Behavior


提供可帮助分析脏读 (隔离级别 0 读取)如何影响系统的信息。


Page Requests


报告在隔离级别 0 上请求的平均页数。“% of total”列报告脏读占页读取 总数的百分比。

如果脏读页请求导致重新启动了许多脏读,则它们会造成很大的开销。


Dirty Read Re-starts


发生的脏读重新启动的次数。本类别仅针对整个服务器进行报告,而不 针对各个高速缓存报告。如果没有 “Dirty Read Page Requests”,则 sp_sysmon 不会显示此类别的输出结果。

当在某页中脏读处于活动状态,而另一进程对此页进行了更改引起该页 释放,则会发生脏读重新启动。对级别 0 的扫描必须重新启动。

% of total”输出是在隔离级别 0 中进行的脏读重新启动占页读取总数的 百分比。

如果这些值很高,您可能需要采取一些步骤,通过修改应用程序减小这 些值,因为与脏读相关的开销和导致的重新启动要付出昂贵的代价。大 多数应用程序都应避免重新启动,因为由此导致的开销很高。


Cache Management by Cache

报告服务器中每个活动高速缓存的利用率。样本输出显示缺省数据高速 缓存的结果。


高速缓存螺旋锁争用


引擎在高速缓存中遇到螺旋锁争用而被迫等待的次数,以该次数占该高 速缓存中螺旋锁请求总数的百分比表示。这只在 SMP 环境中有意义。

当用户任务对高速缓存进行任何更改时,则在进行更改过程中螺旋锁拒 绝所有其它任务访问此高速缓存。虽然螺旋锁的持有时间极短,也会减 慢具有高事务处理速率的多处理器系统的性能。如果螺旋锁争用超过 10%,则应考虑使用命名高速缓存或添加高速缓存分区。

有关添加高速缓存的信息,请参见 《性能和调优:基础知识》中的 第 5 章 “内存使用和性能”。


Utilization


报告使用此高速缓存的搜索占跨所有高速缓存的搜索的百分比。您可对 每个高速缓存的此值进行比较,以确定是否存在过度利用或未充分利用 的高速缓存。如果确定了某个高速缓存没有很好地利用,您可以:

更改高速缓存绑定以平衡利用率。有关详细信息,请参见 《性能和 调优指南:基础知识》中的第 5 章 “内存使用和性能”。

调整高速缓存的大小使其与本身的利用情况更加适应。

有关详细信息,请参见 《系统管理指南,卷 2》中的第 4 章 “配置 数据高速缓存”。


高速缓存搜索、命中数和未命中数信息

此高速缓存的命中数和未命中数以及搜索总数。高速缓存命中数基本上 等于 statistics io 报告的逻辑读取值;高速缓存未命中数基本上等于物理 读取值。 sp_sysmon 报告的值总是高于 statistics io 显示的值,因为 sp_sysmon 还报告系统表的 I/O、日志页、 OAM 页和其它系统开销。

要解释高速缓存命中数据,您需要了解应用程序如何使用每个高速缓存。 在为了持有特定对象 (如索引或查询表)而创建的高速缓存中,高速缓 存命中率可能会达到 100%。在用于大表随机点查询的高速缓存中,高速 缓存命中率可能相当低,但高速缓存使用的效率不减。

高速缓存命中数和未命中数还可以帮助您确定添加更多内存是否能够改善 性能。例如,如果 “Cache Hits”很高,添加内存可能不会有太大帮助。


Cache Hits


在数据高速缓存中找到所需页的次数。“% of total”报告高速缓存命中次 数占高速缓存搜索总次数的百分比。


Found in Wash


在高速缓存的清洗部分中找到所需页的次数。“% of total”报告在清洗区 找到缓冲区的次数占命中总次数的百分比。如果数据显示在清洗部分高 速缓存命中百分比很高,这可能意味着清洗区过大。不过,对于只读或 写操作次数较低的高速缓存来说,较大的命中数并不是问题。

较大的清洗部分可能会导致物理 I/O 增加,因为在它们通过清洗标记时, Adaptive Server 会对所有脏页启动写操作。如果将清洗区中的页写入到磁 盘,然后进行第二次更新,则会浪费 I/O。请检查确认在清洗标记处是否 有大量缓冲区正在进行写操作。

有关详细信息,请参见 112 页的 “ Buffer Wash Behavior


如果对高速缓存中表的查询将 “读取和放弃”策略用于非 APF I/O,则 页的第一次高速缓存命中可在清洗区中找到它。缓冲区移动到链的 MRU 端,因此紧跟第一个高速缓存命中的第二个高速缓存命中将会找到仍在 清洗区外的缓冲区。

有关信息,请参见 112 页的 “ Cache Strategy

您可以更改清洗大小。如果减小清洗大小,可在完整负载的条件下再次 运行 sp_sysmon 并检查值大于 0 的 “Grabbed Dirty”输出

请参见 104 页的 “ Cache Turnover


Cache Misses


在高速缓存中未找到需要的页而必须从磁盘读取的次数。“% of total”报 告在高速缓存中未找到缓冲区的次数占搜索总次数的百分比。


Total Cache Searches


概述高速缓存搜索活动。“ Found in Wash”数据是 “Cache Hits”数值的 子类别,在摘要计算中不会使用它。


Pool Turnover


从高速缓存中的每个池替换缓冲区的次数。每个高速缓存可最多有 4 个 池, I/O 的大小分别为 2K4K8K 16K。如果存在任何 “Pool Turnover”,则 sp_sysmon 输出每个已配置的池的 “LRU Buffer Grab”和 “Grabbed Dirty”信息和整个高速缓存的总周转数。如果没有任何 “Pool Turnover”,则 sp_sysmon 只为 “Total Cache Turnover”输出零值。

此信息可帮助您确定池和高速缓存的大小是否正确。


LRU Buffer Grab


LRU Buffer Grab”仅在一页代替另一页时递增。如果最近重新启动过 Adaptive Server,或者刚刚解除对象或数据库与高速缓存的绑定然后又重 新建立了绑定,则在计算周转率时不会考虑将页读入到空缓冲区的操作。

如果内存池对于吞吐量来说太小,则可能会得到这样的结果:池中的周 转率很高、高速缓存命中率降低以及 I/O 率提高。如果某些池中周转率 很高而在其它池中却很低,您也许希望将活动性低的池中的空间移动到 活动性高的池中,尤其是在这样可能提高高速缓存命中率的情况下。

如果池有 1000 个缓冲区,而 Adaptive Server 每秒替换 100 个缓冲区,则 每秒有 10% 的缓冲区在周转。这可能表示缓冲区在高速缓存中停留的时 间不足以使对象有机会使用此高速缓存。


Grabbed Dirty


提供在写入磁盘前到达 LRU 的脏缓冲区数量的统计信息。当 Adaptive Server 需要从高速缓存的 LRU 端争夺一个缓冲区以便从磁盘读取一页, 却找到一个脏缓冲区而不是干净缓冲区时,它必须等待脏缓冲区上的 I/O 完成。“% of total”报告脏缓冲区争夺占缓冲区争夺总次数的百分比。

如果 “ Grabbed Dirty”是非零值,则表示对于池中的吞吐量而言池的清 洗区太小。补救措施取决于池的配置和使用情况:

如果池非常小且周转率很高,则应考虑增加池和清洗区的大小。

如果池很大,且用于大量的数据更改操作,则应增加清洗区的大小。

如果有几个对象使用此高速缓存,则将其中的一些对象移动到其它 高速缓存中可能会有所帮助。

如果高速缓存正在由 create index 使用,则高 I/O 率可引起脏缓冲区 争夺,尤其在较小的 (16K) 池中。在这些情况下,可将池的清洗区 大小设置得尽可能高,可达到池中缓冲区的 80%

如果高速缓存已分区,则应减少分区数。

检查查询计划和对象的 I/O 统计信息,此对象使用高速缓存进行能 够在池中执行许多物理 I/O 的查询。如有可能,通过添加索引对查 询进行调优。

请在 112 页的 “ Buffer Wash Behavior 中检查 “Buffers Already in I/O”和 “Buffers Washed Dirty”的 “per second”值。清洗区应足够大 以便允许 I/O 在到达 LRU 前能够在脏缓冲区中完成。完成 I/O 需要的时 间取决于由磁盘驱动器完成的每秒实际物理写操作次数。

还要检查 120 页的 “磁盘 I/O 管理”以查看 I/O 争用是否会减慢磁盘 写操作。

另外,增加 housekeeper free write percent 配置参数的值也会有所帮助。 请参见 《系统管理指南,卷 1》中的第 5 章。


Total Cache Turnover


提供在高速缓存的所有池中发生的缓冲区争夺的总次数。


Cluster Cache Behavior

sp_sysmon 描述为集群环境的缓冲区获取的任何锁。


Buffer Wash Behavior

报告有关缓冲区在到达池的清洗标记时的状态的信息。当缓冲区到达清 洗标记时,它处于以下三种状态中的一种:

Buffers Passed Clean”报告通过清洗标记时清理干净缓冲区的数量。 缓冲区在高速缓存中时不进行修改,或进行了修改,而且已经由管家 或检查点写入到磁盘。“% of total”报告清理干净的缓冲区占通过清 洗标记的缓冲区总数的百分比。

Buffers Already in I/O”报告 I/O 在进入清洗区时在缓冲区中已经处 于活动状态的次数。页面在位于高速缓存中时被修改。管家或检查点 已经启动该页中的 I/O,但 I/O 还没有完成。“% of total”报告已经 在 I/O 中的缓冲区占进入清洗区的缓冲区总数的百分比。

Buffers Washed Dirty”报告缓冲区进入已脏的清洗区且尚未在 I/O 中的次数。缓冲区在高速缓存中时已更改且没有写入到磁盘。异步 I/O 通过清洗标记时已在页中启动。“% of total”报告清洗脏了的缓 冲区占进入清洗区的缓冲区总数的百分比。

如果在采样间隔期间没有缓冲区通过清洗标记,则 sp_sysmon 输出:

Statistics Not Available - No Buffers Entered Wash Section Yet!


Cache Strategy


在遵循 “读取和放弃” (MRU) 或常规 (LRU) 高速缓存策略的情况下,放 置在高速缓存中的缓冲区数量:

• Cached (LRU) Buffers — 报告使用普通高速缓存策略并被放置在高速 缓存的 MRU 端的缓冲区的数量。这包括直接从磁盘读取并放置在 MRU 端的所有缓冲区,以及在高速缓存中找到的所有缓冲区。逻辑 I/O 完成时,将缓冲区放置在高速缓存的 MRU 端。

• Discarded (MRU) Buffers — 报告在使用 “读取和放弃”策略的情况 下被放置在清洗标记处的缓冲区数量。

如果希望将整个表进行高速缓存,但发现 “Discarded Buffers”的值 很高,可使用 showplan 查看优化程序是否在应该使用常规高速缓存 策略时生成 “读取和放弃”策略。

有关详细信息,请参见 《性能和调优系列:查询处理和抽象计划》中 的第 2 章 “使用 showplan”。


Large I/O Usage


提供有关大 I/O Adaptive Server 预取请求的数据。它报告已执行或已 拒绝的大 I/O 请求的数量统计信息。


Large I/Os Performed


衡量执行请求的大 I/O 的次数。“% of total”报告执行的大 I/O 请求占已 进行的请求总数的百分比。

仅当 Adaptive Server 在高速缓存中执行大 I/O 时, sp_sysmon 才显示该 部分。


Large I/Os Denied


I/O 无法执行的次数。“% of total”报告拒绝的大 I/O 请求占已进行的 请求总数的百分数。

在以下情况下, Adaptive Server 无法执行大 I/O

如果缓冲区中的任何页已经驻留在其它池中。

当请求的池中没有任何缓冲区可用时。

在分配单元的第一个扩充上,因为它包含分配页,该页始终被读入到

2K 池中。

如果大 I/O 被拒绝的比例较高,则说明较大池的使用情况没有获得预期的 效果。如果高速缓存包含大 I/O 池,且查询对相同的对象执行 2K 16K I/O,则总会有一定比例的大 I/O 不能执行,因为页在 2K 池中。

如果拒绝的大 I/O 超过半数,且您在使用 16K I/O,则应尝试将所有的 空间从 16K 的池中移动到 8K 的池中。重新运行测试以查看 I/O 总数是否 已减少。当 16K I/O 被拒绝时,Adaptive Server 并不检查 8K 4K 的 池,而是使用 2K 的池。

可以使用本类别和 “Pool Turnover”中的信息帮助判断正确的池大小。

仅当 Adaptive Server 在高速缓存中执行大 I/O 时, sp_sysmon 才显示该 部分。


Total large I/O Requests


提供执行的和拒绝的大 I/O 的摘要统计信息。


Large I/O Detail


分别提供每个池的摘要信息。它包含在高速缓存中配置的每个 4K8K 16K 的池的信息块。它输出为已配置的每个 I/O 大小引入的页(“Pages Cached”)和引用的页 (“Pages Used”)。

例如,如果查询执行一个 16K I/O 并读取单个的数据页,则 “Pages Cached”值为 8,“Pages Used”的值为 1

Pages by Lrg I/O Cached”输出读取到高速缓存中的页的总数。

Pages by Lrg I/O Used”报告在高速缓存中时由查询使用的页数。


Dirty Read Behavior


报告在隔离级别 0 时请求的平均页数。

Dirty Read Page Requests”的 “% of total”输出显示脏读次数相对于页 读取总次数的百分比。




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------