远程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. 实用程序指南

 


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

生成 XML 格式消息的 set 命令

可以以 XML 文档格式重新生成诊断。这更易于前端工具解读文档。如 果启用了 XML 选项,则可以使用 Adaptive Server 中的本机 XPath 查询 处理器查询此输出。

查询优化程序或查询执行层可以生成诊断输出。要生成诊断输出的 XML

文档,请使用以下 set plan 命令:

set plan for

{show_exec_xml, show_opt_xml, show_execio_xml, show_lop_xml, show_managers_xml, show_log_props_xml, show_parallel_xml, show_histograms_xml, show_final_plan_xml, show_abstract_plan_xml, show_search_engine_xml, show_counters_xml, show_best_plan_xml, show_pio_costing_xml, show_lio_costing_xml, show_elimination_xml}

to {client | message} on


选项

定义

show_exec_xml

XML 形式获取编译的计划输出,显示每个查询计划运算符。

show_opt_xml

获取优化程序诊断输出,其中显示不同的组成部分,例如逻辑运算符、管理 器输出、某些搜索引擎诊断和最佳查询计划。

show_execio_xml

获取计划输出以及估计的和实际的 I/Oshow_execio_xml 还包括查询文本。

show_lop_xml

XML 形式获取输出逻辑运算符树。

show_managers_xml

显示查询优化程序准备阶段中各组件管理器的输出。

show_log_props_xml

显示给定等效类的逻辑属性 (查询中的一个或多个关系组)。


image

选项 定义

show_parallel_xml 显示生成并行查询计划时与优化程序有关的诊断。

show_histograms_xml 显示与直方图和直方图合并有关的诊断。

show_final_plan_xml 获取计划输出。不包括估计的和实际的 I/Oshow_final_plan_xml 包括查询文本。

show_abstract_plan_xml 显示生成的抽象计划。 show_search_engine_xml 显示与搜索引擎相关的诊断。 show_counters_xml 显示计划对象构造 / 破坏计数器。 show_best_plan_xml XML 形式显示最佳计划。

show_pio_costing_xml XML 形式显示实际的物理输入 / 输出开销。 show_lio_costing_xml XML 形式显示实际的逻辑输入 / 输出开销。 show_elimination_xml XML 形式显示分区排除。

client 如果指定,则将输出发送到客户端。缺省情况下这是错误日志。但如果打开 跟踪标志 3604,输出将发送到客户端连接。

message 如果指定,则将输出发送到内部消息缓冲区。


若要关闭某一选项,请指定:

set plan for

{show_exec_xml, show_opt_xml, show_execio_xml, show_lop_xml, show_managers_xml, show_log_props_xml, show_parallel_xml, show_histograms_xml,show_final_plan_xml show_abstract_plan_xml, show_search_engine_xml, show_counters_xml, show_best_plan_xml, show_pio_costing_xml, show_lio_costing_xml, show_elimination_xml} off

关闭选项时,不需要指定目标流。

如果指定了 message,客户端应用程序必须使用名为 showplan_in_xml(query_num) 的内置函数从缓冲区中获得诊断信息。

query_num 指的是在缓冲区中高速缓存的查询数。当前,缓冲区中最多 可高速缓存 20 个查询。当查询达到 20 个时,高速缓存会停止收集查询 计划;它会忽略其余的查询计划。但是,消息缓冲区会继续收集查询计 划。在超过 20 个查询后,您只能使用值 0 来显示整个消息缓冲区。

query_num 的有效值为 1 – 20-1 0 (零)。值 -1 指的是高速缓存中 的最后一个 XML 文档;值 0 指的是整个消息缓冲区。

消息缓冲区可能会溢出。如果发生溢出,则无法记录所有 XML 文档, 这可能造成 XML 文档不完整和无效。

当使用 showplan_in_xml 访问消息缓冲区时,在执行后会清空缓冲区。


您可能要使用 set textsize 设置最大文本大小,因为 XML 文档会作为文 本列输出,并且如果该列不够大,文档将会被截断。例如,使用以下命 令将文本大小设置为 100000 个字节:

set textsize 100000

set plan off 一起发出时,如果已关闭所有跟踪选项,则将关闭所有 XML 跟踪。否则,仅关闭指定的选项。以前打开的其它选项仍然有效, 并会在指定的目标流中继续跟踪。当您发出另一个 set plan 选项时,之 前的选项会与当前选项联合,但目标流将无条件地切换到新的目标流。


使用 show_execio_xml 诊断查询计划

show_execio_xml 包括诊断信息,您可能会发现这些信息有助于调查有问 题的查询。 show_execio_xml 提供的信息包括:

查询计划的版本级别。计划的每个版本都唯一地进行标识。这是计 划的第一个版本:

<planVersion>1.0</planVersion>

批处理或存储过程中的语句号,以及语句在初始文本中的行号。查 询中的语句号是 2,行号是 6

<statementNum>2</statementNum>

<lineNum>6</lineNum>

查询的抽象计划。例如,下面是查询 select * from titles 的抽象计划:

<abstractPlan>

<![CDATA[>

( i_scan titleidind titles ) ( prop titles ( parallel 1

) ( prefetch 8 ) ( lru ) )

]]>

</abstractPlan>

逻辑 I/O、物理 I/O CPU 开销:

<costs>

<lio> 2 </lio>

<pio> 2 </pio>

<cpu> 18 </cpu>

</costs>

可以使用以下公式估计总开销 (252 0.1 是常量):

25 X pio + 2 X lio + 0.1 X cpu


估计的执行资源使用情况,包括查询计划使用的线程数和辅助扫描 描述符数。

查询引擎查看的计划数和它确定为有效的计划数,查询在查询引擎 中花费的总时间 (以毫秒为单位),查询引擎确定第一个合法计划 所花费的时间,以及在优化过程中使用的过程高速缓存量。

<optimizerMetrics>

<optTimeMs>6</optTimeMs>

<optTimeToFirstPlanMs>3</optTimeToFirstPlanMs>

<plansEvaluated>1</plansEvaluated>

<plansValid>1</plansValid>

<procCacheBytes>140231</procCacheBytes>

</optimizerMetrics>

上次对当前表运行 update statistics 的时间,以及查询引擎是否对给 定列使用了估计常量 (如果统计信息可用,则可以进行更准确的估 计)。本部分包括有关缺少统计信息的列的信息:

<optimizerStatistics>

<statInfo>

<objName>titles</objName>

<columnStats>

<column>title_id</column>

<updateTime>Oct 5 2006 4:40:14:730PM</updateTime>

</columnStats>

<columnStats>

<column>title</column>

<updateTime>Oct 5 2006 4:40:14:730PM</updateTime>

</columnStats>

</statInfo>

</optimizerStatistics>

运算符树,包括表和索引扫描以及有关高速缓存策略和 I/O 大小的 信息 (insertupdate delete 具有目标表的相同信息)。运算符树 还显示是以 “直接”模式还是 “延迟”模式执行 updateexchange 运算符包括有关查询使用的生产者进程和消耗程序进程数的信息。

<TableScan>

<VA>0</VA>

<est>

<rowCnt>18</rowCnt>

<lio>2</lio>

<pio>2</pio>

<rowSz>218.5555</rowSz>

</est>

<varNo>0</varNo>

<objName>titles</objName>


<scanType>TableScan</scanType>

<partitionInfo>

<partitionCount>1</partitionCount>

</partitionInfo>

<scanOrder> ForwardScan </scanOrder>

<positioning> StartOfTable </positioning>

<dataIOSizeInKB>8</dataIOSizeInKB>

<dataBufReplStrategy> LRU </dataBufReplStrategy>

</TableScan>


XML 格式显示高速缓存计划

show_cached_plan_in_xml 可帮助跟踪语句高速缓存中的查询性能。 对于给定查询, show_cached_plan_in_xml (由其对象 ID 或者 SSQLID PlanID 标识)返回以下内容:

标题节,其中包含有关高速缓存语句的信息,例如语句 ID、对象 ID 和文本:

<?xml version="1.0" encoding="UTF-8"?>

<query>

<statementId>1328134997</statementId>

<text>

<![CDATA[SQL Text: select name from sysobjects where id = 10]]>

</text>

如果 PlanID 设置为 0show_cached_plan_in_xml 会显示与高速缓存 语句关联的所有可用计划的输出。

计划节,其中包含计划 ID 和以下小节:

参数 — 返回计划状态,用于编译查询的参数以及导致最低性能 的参数值。

<planId>11</planId>

<planStatus> available </planStatus>

<execCount>1371</execCount>

<maxTime>3</maxTime>

<avgTime>0</avgTime>

<compileParameters/>

<execParameters/>

• opTree — 返回运算符树、行计数以及每个运算符的逻辑 I/O (lio) 和物理 I/O (pio) 估计值。 opTree 小节返回查询计划和优化程序 估计值,例如 liopio 和行计数。



<opTree>

<Emit>

以下是 Emit 运算符的输出示例。

<VA>1</VA>

<est>

<rowCnt>10</rowCnt>

<lio>0</lio>

<pio>0</pio>

<rowSz>22.54878</rowSz>

</est>

<act>

<rowCnt>1</rowCnt>

</act>

<arity>1</arity>

<IndexScan>

<VA>0</VA>

<est>

<rowCnt>10</rowCnt>

<lio>0</lio>

<pio>0</pio>

<rowSz>22.54878</rowSz>

</est>

<act>

<rowCnt>1</rowCnt>

<lio>3</lio>

<pio>0</pio>

</act>

<varNo>0</varNo>

<objName>sysobjects</objName>

<scanType>IndexScan</scanType>

<indName>csysobjects</indName>

<indId>3</indId>

<scanOrder> ForwardScan </scanOrder>

<positioning> ByKey </positioning>

<perKey>

<keyCol>id</keyCol>

<keyOrder> Ascending </keyOrder>

</perKey>

<indexIOSizeInKB>2</indexIOSizeInKB>

<indexBufReplStrategy> LRU </indexBufReplStrategy>

<dataIOSizeInKB>2</dataIOSizeInKB>

<dataBufReplStrategy> LRU </dataBufReplStrategy>

</IndexScan>

</Emit>

<opTree>



<Emit>

<Details>

• execTree — 返回查询计划以及运算符内部详细信息。根据运算符 的不同,详细信息也有所不同。以下是 Emit 运算符的输出示例。

<VA>5</VA>

<Vtuple Label="Output Vtuple">

<collection Label="Columns (#2)">

<Column>

<0x0x1462d2838) type:GENERIC_TOKEN len:0 offset:0 valuebuf:0x(nil) status:(0x00000008 (STATNULL)) (constant:0x0x1462d24c0 type:INT4 len:4 maxlen:4 constat:(0x0004 (VARIABLE), 0x0002 (PARAM)))

</Column>

<Column>

(0x0x1462d2878) type:GENERIC_TOKEN len:0 offset:0 valuebuf:0x(nil) status:(0x00000008 (STATNULL)) (constant:0x0x1462d26e8 type:INT4 len:4 maxlen:4 constat:(0x0004 (VARIABLE), 0x0002 (PARAM))

</Column>

<Collection>

<Collection Label="Evals">

<EVAL>

constp:0x0x1462d2290 status:0 E_ASSIGN

</EVAL>

<EVAL>

constp:0x0x1462d2348 status:0 E_ASSIGN

</EVAL>

<EVAL>

constp:0x(nil) status:0 E_END

</EVAL>

</Collection>

</Vtuple>

</Details>




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------