SAP ASE 15.7 ESD#2中文版官方手册目录列表(2)

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

15、性能和调优系列:锁定和并发控

  1 锁定简介 1

锁定如何影响性能 1

锁定和数据一致性 2

锁的粒度和锁定方案 3

所有页锁定 3

数据页锁定 4

数据行锁定 5

Adaptive Server 中的锁类型 6

页锁和行锁 7

表锁 8

请求锁 11

行锁定系统表 13

用于可串行化读取的范围锁定 14

闩锁 14

锁兼容性和锁充分性 15

隔离级别对锁定的影响 16

隔离级别 0 ,读取未提交的 16

隔离级别 1 ,读取已提交的 18

隔离级别 2 ,可重复读取 19

隔离级别 3 ,可串行化读取 20

Adaptive Server 缺省隔离级别 21

查询处理期间的锁类型和持有时间 22

create index 命令期间的锁类型 24

用于隔离级别 1 select 查询的锁定 24

表扫描与隔离级别 2 3 25

当不需要更新锁时 26

or 处理期间的锁定 26

select 期间跳过未提交的插入 27

使用替代谓词跳过非限定行 28

伪列级锁定 29

不引用更新列的 select 查询 29

限定未提交的更新的旧值和新值 30

减少争用 31

2 锁定配置和调优 33

锁定和性能 33

使用 sp_sysmon sp_object_stats 34

减少锁争用 34

其它锁定原则 36

配置锁和锁升级阈值 37

配置 Adaptive Server 锁限制 38

设置锁升级阈值 39

选择表的锁定方案 44

分析现有应用程序 44

基于争用统计信息选择锁定方案 45

转换之后监控和管理表 46

不可能从仅数据锁定受益的应用程序 46

优化索引锁定 48

使用优化索引锁定 48

注意事项和问题 49

3 锁定报告 51

锁定工具 51

获取有关阻塞进程的信息 51

通过 sp_lock 查看锁 53

通过 sp_familylock 查看锁 55

网络缓冲区合并期间的系列内阻塞 56

监控锁超时 57

死锁和并发 57

服务器方与应用程序方死锁 57

服务器任务死锁 58

死锁和并行查询 59

将死锁信息输出到错误日志中 60

避免死锁 61

标识存在并发问题的表 63

锁管理报告 64

4 使用锁定命令 65

指定表的锁定方案 65

指定全服务器范围内的锁定方 65

使用 create table 指定锁定方案 66

alter table 更改锁定方案 66

更改锁定方案前后 67

切换所有页锁定的代价 68

alter table 期间的排序性能 69

select into 指定锁定方案 69

控制隔离级别 70

设置会话的隔离级别 70

查询级和表级锁定选项的语法 70

使用 holdlock noholdlock shared 71

使用 at isolation 子句 72

加强锁的限制性 72

减弱锁的限制性 73

Readpast 锁定 74

游标和锁定 74

使用关键字 shared 75

其它锁定命令 76

lock table 76

锁超时 77

5 索引 79

索引类型 80

索引页 80

索引大小 82

索引和分区 82

分区表上的本地索引 83

分区表上的全局索引 83

本地和全局索引 83

支持的分区索引类型 83

所有页锁定表上的聚簇索引 84

聚簇索引和选择操作 84

聚簇索引和插入操作 85

对完整数据页的页面拆分 86

索引页的页面拆分 88

页面拆分对性能的影响 88

溢出页 88

聚簇索引和删除操作 89

非聚簇索引 92

重新访问的叶页 92

非聚簇索引结构 92

非聚簇索引和选择操作 93

非聚簇索引性能 94

非聚簇索引和插入操作 95

非聚簇索引和删除操作 96

DOL 锁定表的聚簇索引 97

索引覆盖 97

覆盖匹配索引扫描 98

覆盖非匹配索引扫描 99

索引和高速缓存 100

为数据页和索引页使用单独的高速缓存 101

通过高速缓存的索引行程 101

6 用于并发控制的索引 103

索引如何影响性能 103

检测索引问题 104

不佳索引的症状 105

修复损坏的索引 107

索引限制和要求 110

选择索引 110

索引键和逻辑键 111

聚簇索引准则 112

选择聚簇索引 112

非聚簇索引的候选项 113

选择基于函数的索引 113

索引选择 114

其它索引建立准则 116

选择非聚簇索引 117

选择组合索引 118

组合索引中的键排序和性能 118

组合索引的优缺点 119

DOL 锁定索引使用 online reorg rebuild 120

选择索引的方法 120

为范围查询选择索引 120

不同索引要求情况下添加点查询 121

索引和统计信息维护 123

删除有损性能的索引 123

选择索引的空间管理属性 123

有关索引的其它提示 124

创建人工列 124

保持索引条目简短并避免开销 124

删除和重建索引 125

配置足够的排序缓冲区 125

首先创建聚簇索引 125

配置大缓冲池 125

异步日志服务 125

理解用户日志高速缓存 (ULC) 的体系结构 127

何时使用 ALS 127

使用 ALS 128

索引 131

 


16、性能和调优系列:监控表

 

1 监控表简介 1

Adaptive Server 中的监控表 1

监控信息来自哪里? 2

使用 Transact-SQL 监控性能 2

安装监控表 3

低于 15.0.2 的版本, Cluster Edition 除外 3

远程访问和编辑监控表 4

配置监控表以收集数据 4

为管道错误消息分配内存 6

监控表的配置参数 6

错误 12036 10

mon_role 和其它访问控制 10

计数器数据类型归零 11

有态历史监控表 12

瞬时监控数据 14

在集群环境中使用监控 15

配置系统视图 15

为监控实例添加 InstanceID 16

语句高速缓存的监控表 17

配置 Adaptive Server 以监控语句高速缓存 17

从语句高速缓存中删除语句 18

SQL 文本获取散列键 18

显示高速缓存语句的文本和参数信息 18

查询监控表的示例 19

2 等待事件 21

事件 19 xact coord :在空闲循环期间暂停 23

操作 23

事件 29 :等待常规缓冲区读取完成 23

操作 23

事件 30 :等待写入 MASS MASS 正在更改 24

操作 24

事件 31 :在写入之前等待缓冲区写入完成 24

操作 25

事件 32 :等待 APF 缓冲区读取完成 25

操作 25

事件 35 :等待缓冲区验证完成 25

操作 25

事件 36 :在更改之前等待 MASS 完成写入 26

操作 26

事件 37 :在更改之前等待 MASS 完成更改 26

操作 26

事件 41 :等待获取闩锁 26

操作 27

事件 46 :等待缓冲区写入完成以便从 LRU 获取缓冲区 27

操作 28

事件 51 :等待 MASS 上的最后一个 i/o 完成 28

操作 28

事件 52 :等待 MASS 上被另一个任务启动的 i/o 28

操作 29

事件 53 :等待 MASS 完成更改以便开始 i/o 29

操作 29

事件 54 :等待最后一个日志页的写入完成 29

操作 30

事件 55 :在写入最后一个日志页后等待 i/o 完成 30

操作 30

事件 57 :检查点进程空闲循环 30

操作 30

事件 61 hk :暂停一段时间 31

操作 31

事件 70 :等待设备信号 31

操作 31

事件 83 :等待 DES 状态更改 31

操作 31

事件 84 :等待检查点完成 32

操作 32

事件 85 :等待刷新程序将完整的 DFLPIECE 排入队列 32

操作 32

事件 91 :等待磁盘缓冲区管理器 i/o 完成 32

操作 33

事件 99 :等待来自客户端的数据 33

操作 33

事件 104 :等到引擎已脱机 33

操作 33

事件 124 :在获取页时等待簇读取完成 34

操作 34

事件 142 :等待逻辑连接释放 34

操作 34

事件 143 :暂停以便与节点管理器同步 34

操作 35

事件 150 :等待锁 35

操作 35

事件 157 :等待对象返回到 35

操作 36

事件 169 :等待消息 36

操作 36

事件 171 :等待 CTLIB 事件完成 36

操作 36

事件 178 :等待分配新客户端套接字 37

操作 37

事件 179 :在无需网络读取或写入时等待 37

37

事件 197 :等待读取在并行 dbcc 中完成 37

操作 38

事件 200 :等待并行 dbcc 中的页读取 38

操作 38

事件 201 :等待并行 dbcc 中的磁盘读取 38

操作 38

事件 202 :等待以并行方式重新读取页 39

操作 39

事件 203 :等待并行 dbcc 中的 MASS_READING 39

操作 39

事件 205 :等待并行 dbcc 中的 TPT 39

操作 40

事件 207 :等待并行 dbcc 中将故障消息发送给父项 40

操作 40

事件 209 :等待管道缓冲区读取 40

操作 40

事件 210 :等待管道管理器中的可用缓冲区 41

操作 41

事件 214 :退让之后在运行队列中等待 41

操作 41

事件 215 :休眠之后在运行队列中等待 42

操作 42

事件 222 :复制代理在刷新期间休眠 42

操作 42

事件 250 :等待进站网络数据 42

操作 43

事件 251 :等待网络发送完成 43

操作 43

事件 259 :等到最后机会阈值被清除 43

操作 44

事件 260 :等待 waitfor 命令中的日期或时间 44

操作 44

事件 266 :等待工作线程邮箱中的消息 44

操作 44

事件 272 :等待 ULC 上的锁 45

操作 45

事件 334 :等待 Lava 管道缓冲区写入 45

操作 45

事件 374 :等待锁挂起 / 数据挂起被清除 45

操作 46

事件 375 OCM 等待完成 BAST 处理 46

操作 46

事件 389 OCM 等待推送数据标志被清除 46

事件 380 :在 OCM_ERR_DIDNTWAIT 时锁定 / 数据挂起重置 47

操作 47

事件 483 :等待多播同步消息的确认 47

操作 47

索引 49

 


17、性能和调优系列:物理数据库调优

 

1 控制物理数据放置 1

通过控制对象放置来提高性能 2

发现对象放置问题 2

更改数据放置位置时使用 sp_sysmon 3

提高 I/O 性能 3

跨磁盘分布数据以避免 I/O 争用 4

从数据库 I/O 中隔离全服务器范围 I/O 5

将事务日志保存在单独的磁盘上 5

将设备镜像到单独的磁盘 6

使用段 7

在段上创建对象 8

将表和索引分开 8

跨设备拆分大表 9

将文本存储移动到单独的设备 9

为提高性能对表进行分区 9

如何 Adaptive Server 在设备上分配分区 10

分区表的空间计划 11

只读表 11

部分读表 12

以随机形式进行数据修改的表 12

设备填满时添加磁盘 13

设备填满时添加磁盘 13

设备接近填满时添加磁盘 14

维护问题和分区表 15

分区表的常规维护检查 16

2 数据存储 17

查询优化 17

查询处理和页读取 18

Adaptive Server 19

页头和页大小 20

数据页和索引页 20

大对象 (LOB) 20

扩充 21

用于管理空间分配的页 22

全局分配映射页 22

分配页 22

对象分配映射页 23

OAM 页和分配页管理对象存储的方式 23

页分配将对象的页放在一起 24

使用 sysindexes syspartitions 的数据访问 25

空间开销 26

列的数量和大小 26

每个数据页的行数 32

其它对象和大小限制数 32

不含聚簇索引的表 33

锁定方案 33

对堆表执行选择操作 34

将数据插入到所有页锁定堆表中 35

将数据插入到 data-only-locked 堆表中 36

删除堆表上的数据 36

更新堆表上的数据 37

Adaptive Server 如何为堆操作执行 I/O 38

维护堆表 39

事务日志:一种特殊的堆表 40

堆表的异步预取和 I/O 41

高速缓存和对象绑定 42

堆表、 I/O 和高速缓存策略 42

选择操作和高速缓存 44

数据修改和高速缓存 44

3 设置空间管理属性 47

减少索引维护 47

使用 fillfactor 的优势 48

使用 fillfactor 的缺点 49

设置 fillfactor 49

fillfactor 示例 50

使用 sorted_data fillfactor 选项 53

减少行转移 53

exp_row_size 的缺省值、最小值和最大值 54

使用 create table 指定所需行宽 54

添加或更改所需行宽 55

设置服务器范围的缺省所需行宽 55

显示表的所需行宽 56

选择表的所需行宽 56

max_rows_per_page exp_row_size 的转换 57

监控和管理使用所需行宽的表 58

为已转移行和插入留出空间 58

扩充分配命令和 reservepagegap 59

使用 create table 指定保留页间距 60

使用 create index 指定保留页间距 61

更改 reservepagegap 61

reservepagegap 示例 62

reservepagegap 选择值 63

监控 reservepagegap 设置 64

reservepagegap sorted_data 选项 64

在所有页锁定表上使用 max_rows_per_page 66

减少锁争用 67

索引与 max_rows_per_page 67

select into max_rows_per_page 68

max_rows_per_page 应用到现有数 68

4 表和索引大小 69

确定表和索引的大小 70

数据修改对对象大小的影响 70

使用 optdiag 显示对象大小 71

optdiag 的优点 71

optdiag 的缺点 71

使用 sp_spaceused 显示对象大小 72

sp_spaceused 的优点 73

sp_spaceused 的缺点 73

使用 sp_estspace 估计对象大小 73

sp_estspace 的优点 75

sp_estspace 的缺点 75

使用公式估计对象大小 75

可影响存储大小的因素 76

数据类型的存储大小 76

公式中使用的表和索引 78

为所有页锁定表计算表及聚簇索引大小 78

计算 DOL 锁定表的大小 84

影响对象大小的其它因素 89

很短的行 90

LOB 90

使用公式估计对象大小的优点 91

使用公式估计对象大小的缺点 91

5 数据库维护 93

对表和索引运行 reorg 93

创建和维护索引 94

配置 Adaptive Server 以加速排序 94

创建索引后转储数据库 94

对已排序的数据创建索引 95

维护索引和列统计信息 96

重建索引 96

创建或变更数据库 97

备份和恢复 99

本地备份 99

远程备份 99

联机备份 99

使用阈值来防止日志空间用完 99

尽量缩短恢复时间 100

恢复顺序 100

批量复制 100

并行批量复制 101

批处理和批量复制 101

慢速批量复制 101

改善批量复制性能 102

在大表中替换数据 102

向表中添加大量数据 102

使用分区和多个批量复制进程 103

对其他用户的影响 103

数据库一致性检查程序 103

使用 dbcc tune (cleanup) 103

对螺旋锁使用 dbcc tune 104

确定维护活动的可用空间 104

空间要求概述 105

检查空间使用情况和可用空间 105

估计空间管理属性的影响 107

如果没有足够空间 108

6 临时数据库 109

临时数据库管理如何影响性能 109

使用临时表 110

散列 (#) 临时表 110

常规用户表 111

工作表 111

临时数据库 112

分配了临时数据库的会话 112

使用多个临时数据库 113

创建用户临时数据库 113

配置缺省 tempdb 113

绑定到组和 tempdb 114

调优系统临时数据库以获得最佳性能 114

放置系统 tempdb 114

配置用户创建的临时数据库 117

一般准则 117

优化临时数据库的日志记录 123

用户日志高速缓存 (ULC) 123

索引 125

 


18、性能和调优系列:查询处理和抽象计划

1 了解查询处理 1

 

查询优化程序 3

优化查询时分析的因素 5

查询优化转换 6

处理搜索参数和有用索引 10

处理 join 11

优化目标 14

限制优化查询所用时间 14

并行度 15

优化问题 16

Lava 查询执行引擎 18

Lava 查询引擎 18

更新操作如何运行 23

直接更新 23

延迟更新 26

延迟索引插入 27

通过连接对更新模式的约束 29

优化更新 30

调优更新时使用 sp_sysmon 32

2 使用 showplan 33

显示查询计划 33

Adaptive Server Enterprise 15.0 和更高版本中的查询计划 34

结合使用 set showplan noexec 35

语句级别输出 39

查询计划形状 43

查询计划运算符 47

EMIT 运算符 47

SCAN 运算符 47

FROM 高速缓存消息 47

FROM LIST 48

FROM TABLE 49

Union 运算符 82

UNION ALL 运算符 82

MERGE UNION 运算符 83

HASH UNION 83

SCALAR AGGREGATE 运算符 85

RESTRICT 运算符 86

SORT 运算符 86

STORE 运算符 87

SEQUENCER 运算符 89

REMOTE SCAN 运算符 90

SCROLL 运算符 91

RID JOIN 运算 92

SQLFILTER 运算符 94

EXCHANGE 运算符 95

INSTEAD-OF TRIGGER 运算符 97

INSTEAD-OF TRIGGER 运算符 97

CURSOR SCAN 运算符 99

deferred_index deferred_varcol 消息 100

3 显示查询优化策略和估计值 101

生成文本格式消息的 set 命令 101

生成 XML 格式消息的 set 命令 102

使用 show_execio_xml 诊断查询计划 104

XML 格式显示高速缓存计划 106

诊断使用情景 109

set 命令的权限 112

分析动态参数 112

动态参数示例分析 113

4 查找慢速运行的查询 115

诊断信息保存到跟踪文件中 115

设置将诊断信息保存到跟踪文件的选项 117

正在跟踪哪些会话? 118

重新绑定跟踪 118

显示 SQL 文本 119

保留会话设置 122

5 并行查询处理 123

垂直、水平和管道并行度 123

从并行处理获益的查询 124

启用并行度 125

number of worker processes 125

max parallel degree 126

max resource granularity 126

max repartition degree 126

max scan parallel degree 127

prod-consumer overlap factor 127

min pages for parallel scan 128

max query parallel degree 128

在会话级控制并行度 128

set 命令示例 129

控制查询并行度 130

查询 parallel 子句示例 130

有选择地使用并行度 130

将并行度用于大量分区 132

并行查询结果不同的情况 133

使用 set rowcount 的查询 133

设置局部变量的查询 134

了解并行查询计划 134

Adaptive Server 并行查询执行模型 136

EXCHANGE 运算符 136

SQL 操作中使用并行度 141

分区排除 182

分区倾斜 183

查询为何不并行运行 184

运行期调整 184

识别和管理运行期调整 185

6 积极和消极集合 187

概述 187

积极集合 188

集合和查询处理 189

示例 192

使用积极集合 198

启用积极集 198

检查积极集合 199

使用抽象计划强制实现积极集合 201

7 控制优化 205

特殊优化技术 205

查看当前的优化程序设置 206

设置优化级别 208

优化程序诊断实用程序 212

Adaptive Server 配置为运行 sp_opt_querystats 212

运行 sp_opt_querystats 213

指定查询处理器选择 213

指定连接中的表顺序 214

指定查询处理器所考虑的表的个数 215

指定查询索 216

指定查询的 I/O 大小 218

索引类型和 I/O 219

当无法遵循 prefetch 指定时 220

设置 prefetch 220

指定高速缓存策略 221

select delete update 语句中 221

控制大 I/O 和高速缓存策略 222

获取高速缓存策略的有关信息 223

异步日志服务 223

理解用户日志高速缓存 (ULC) 的体系结 224

何时使 ALS 225

使用 ALS 225

启用和禁用合并连接 226

启用和禁用散列连接 226

启用和禁用连接 传递闭包 227

控制文字参数化 228

提出查询的并行度建议 230

查询级别 parallel 子句示例 231

优化目标 231

设置优化目标 232

优化条件 233

限制优化时间 236

控制并行优化 236

number of worker processes 237

指定可用于并行处理的工作进程数 237

max resource granularity 238

max repartition degree 238

用于小表的并发优化 239

更改锁定方案 239

8 游标的优化 241

定义 241

面向集的编程与面向行的编程 242

示例 243

每一阶段所需的资源 244

内存占用及执行游标 246

游标模式 246

游标对索引的使用及要求 247

所有页锁定表 247

DOL 锁定表 248

比较有无游标情况下的系统性能 248

无游标的存储过程举例 249

有游标的存储过程举例 250

有游标与无游标的性能比较 251

使用只读游标锁定 252

隔离级别和游标 253

分区堆表和游标 254

游标优化提示 254

使用游标优化游标选择 254

使用 union ,而不是 or 子句 in 列表 255

声明游标的意图 255

for update 句中指定列名 255

使用 set cursor rows 256

在所有提交和回退中保持游标始终打开 257

在单个连接上打开多个游标 257

9 查询处理指标 259

概述 259

执行 QP 指标 260

访问指标 260

sysquerymetrics 视图 260

使用指标 262

示例 262

清除指标 264

限制查询指标捕获 265

了解 sysquerymetrics 中的 UID 265

10 利用统计信息来提高性能 267

Adaptive Server 中维护的统计信息 267

统计信息的重要性 268

非二进制字符集直方图插值 269

更新统计信息 269

对未建索引的列添加统计信息 270

对更新代理表和视图上的统计信息的限制 270

update statistics 命令 270

update statistics 使用采样 272

自动更新统计信息 273

datachange 函数 274

配置自动 update statistics 276

使用 Job Scheduler 更新统计信息 276

使用 datachange update statistics 的示例 278

列统计信息及统计信息维护 278

创建和更新列统计信息 280

其它统计信息何时可能有用 281

使用 update statistics 为列添加统计信息 283

使用 update index statistics 为次列添加统计信息 283

使用 update all statistics 为所有列添加统计信息 283

为直方图选择梯级数 284

选择梯级数 284

扫描类型、排序要求与锁定 285

对未建索引的列或非前导列进行排序 286

update index statistics 期间的锁定、扫描和排序 286

update all statistics 期间的锁定、扫描和排序 286

使用 with consumers 子句 286

减少 update statistics 对并发进程的影响 287

使用 delete statistics 命令 288

当行计数可能不准确时 288

11 抽象计划简介 289

概述 289

管理抽象计划 290

查询文本和查询计划之间的关系 291

对影响查询计划的选项的限制 291

完整和部分计划 292

创建部分计划 293

抽象计划组 294

抽象计划如何与查询关联 294

高速缓存语句中的抽象计划 295

12 创建和使用抽象计划 297

使用 set 命令捕获和关联计划 297

使用 set plan dump 启用计划捕获模式 298

将查询与存储计划相关联 298

计划捕获期间使用替换模式 299

同时使用 dump load replace 模式 300

对某些 set 参数的编译期更改 301

set plan exists check 选项 303

对抽象计划使用其它 set 选项 303

使用 show_abstract_plan 查看计划 303

使用 showplan 304

使用 noexec 305

使用 fmtonly 305

使用 forceplan 305

全服务器范围的抽象计划捕获和关联模式 306

使用 SQL 创建计划 306

使用 create plan 307

使用 plan 子句 308

13 抽象查询计划指南 311

概述 311

抽象计划语言 312

标识表 315

标识索引 317

指定连接顺序 317

指定连接类型 321

指定部分计划和提示 322

为子查询创建抽象计划 325

用于具体处理视图的抽象计划 331

包含集合的查询的抽象计划 332

包含联合的查询的抽象计划 333

在查询需要排序时使用抽象计划 335

指定重新格式化策略 336

指定 OR 策略 336

未指定 store 运算符时 337

并行处理的抽象计划 337

有关编写抽象计划的提示 338

在查询级别使用抽象计划 339

抽象计划和优化程序条件的运算符名称的一致性 340

扩展优化程序条件 set 语法 341

比较更改前后的计划 342

启用全服务器范围的捕获模式的效果 342

复制计划所需的时间和空间 343

存储过程的抽象计划 344

过程和计划所有权 344

具有可变执行路径和优化的过程 345

即席查询与抽象计划 346

14 使用系统过程管理抽象计划 347

管理抽象计划组 347

创建组 347

删除组 348

获取组信息 348

重命名组 350

查找抽象计划 351

管理单独抽象计划 351

查看计划 351

将计划复制到其它组 352

删除单独抽象计划 353

比较两个抽象计划 353

更改现有计划 354

管理组中的所有计划 354

复制组中的所有计划 355

比较组中的所有计划 355

删除组中的所有抽象计划 357

导入和导出计划组 358

将计划导出到用户表 358

从用户表导入计划 358

索引 359 

 


19、性能和调优系列:使用 sp_sysmon 监控 Adaptive Server

1 sp_sysmon 简介 1

使用 sp_sysmon 1

何时运行 sp_sysmon 3

激活 sp_sysmon 4

固定时间间隔 4

使用 begin_sample end_sample 4

指定要输出的报告部分 5

指定应用程序详细信息参数 6

使用 noclear 选项 6

将输出重定向到文件 7

2 使用 sp_sysmon 监控性能 9

如何使用这些报告 10

标头信息 10

读取输出 11

解释数据 12

高速缓存向导 13

高速缓存向导的语法 14

准备运行高速缓存向导 14

样本输出 15

高速缓存向导的输出样本 16

内核使用率 19

内核利用率 — 线程模式 20

内核利用率 — 进程模式 29

工作进程管理 36

样本输出 36

Worker Process Requests 37

Worker Process Usage 37

Memory Requests for Worker Processes 37

Avg Mem Ever Used By a WP 37

并行查询管理 38

样本输出 38

Parallel Query Usage 39

Merge Lock Requests 40

Sort Buffer Waits 40

任务管理 40

样本输出 41

Connections Opened 42

Task Context Switches by Engine 42

Task Context Switches Due To 42

应用程序管理 49

请求详细的应用程序信息 50

样本输出 50

Application Statistics Summary (All Applications) 52

Per Application Per Application And Login 53

ESP 管理 55

样本输出 55

Housekeeper Task Activity 56

样本输出 56

Buffer Cache Washes 56

Garbage Collections 57

Pages Processed in GC 57

Statistics Updates 57

对执行 SQL 的监控访问 57

样本输出 58

Waits on Execution Plans 58

Number of SQL Text Overflows 58

Maximum SQL Text Requested 58

事务配置文件 59

样本输出 59

Transaction Summary 60

Transaction Detail 62

Inserts 62

Updates 和更新细节部分 64

Deletes 65

事务管理 66

样本输出 66

ULC Flushes to Xact Log 68

Total ULC Flushes 71

ULC Flushes Skipped 71

ULC Log Records 72

Max ULC Size During Sample 73

ML-DMLs Sub-Command Scans 73

ML-DMLs ULC Efficiency 74

Total ML-DML Sub-Commands 74

ULC Semaphore Requests 74

Log Semaphore Requests 75

Transaction Log Writes 75

Transaction Log Allocations 75

Avg # Writes per Log Page 75

Tuning Recommendations for Transaction Management 76

索引管理 76

样本输出 76

Nonclustered Maintenance 77

Page Splits 79

Page Shrinks 83

Index Scans 83

元数据高速缓存管理 83

样本输出 84

Open Object Usage Open Index Usage

Open Partition Usage Open Database Usage 85

Descriptors immediately discarded 85

Object Manager Spinlock Contention 86

Object Spinlock Contention Index Spinlock Contention 86

Index Hash Spinlock Contention 86

Partition Spinlock Contention 88

Partition Hash Spinlock Contention 88

Lock Management 88

样本输出 88

Lock Summary 91

Lock Detail 92

Deadlocks by Lock Type 94

Deadlock Detection 95

Lock Promotions 96

Lock Time-out Information 97

Cluster Lock Summary 97

数据高速缓存管理 98

样本输出 99

Cache Statistics Summary (All Caches) 104

Cache Management by Cache 108

过程高速缓存管理 114

样本输出 114

Procedure Requests 115

Procedure Reads from Disk 115

Procedure Writes to Disk 115

Procedure Removals 115

Procedure Recompilations 116

SQL Statement Cache 116

内存管理 117

样本输出 117

Pages Allocated 117

Pages Released 117

恢复管理 117

样本输出 118

Checkpoints 118

Average Time per Normal Checkpoint 119

Average Time per Free Checkpoint 119

Increasing the Housekeeper Batch Limit 119

磁盘 I/O 管理 120

样本输出 120

Maximum Outstanding I/Os 122

I/Os Delayed by 122

请求和完成的磁盘 I/O 123

Device Activity Detail 124

网络 I/O 管理 126

样本输出 126

Total Network I/Os Requests 127

Network I/Os Delayed 127

Total TDS Packets Received 127

Total Bytes Received 127

Average Bytes Received per Packet 127

Total TDS Packets Sent 128

Total Bytes Sent 128

Average Bytes Sent per Packet 128

Replication Agent 128

样本输出 128

索引 135

 


20、性能和调优系列:利用统计分析改进性能

1 使用 set statistics 命令 1

set 命令语法 1

使用模拟统计信息 2

检查子查询高速缓存性能 2

查看编译和执行时间 2

将时钟周期转换成毫秒 3

报告物理和逻辑 I/O 统计信息 3

总的实际 I/O 开销值 4

写入数的统计信息 4

读取的统计信息 5

游标的 statistics io 输出 6

扫描计数 7

物理和逻辑读取之间的关系 9

statistics io 和合并连接 11

使用 set statistics plancost 分析查询 11

set statistics plancost 示例 11

2 统计表和使用 optdiag 显示统计信息 15

存储统计信息的系统表 15

systabstats 15

sysstatistics 16

使用 optdiag 实用程序查看统计信息 17

optdiag 语法 17

optdiag 标题信息 18

表的统计信息 18

索引统计信息 21

列统计信息 24

直方图显示的内容 28

配置直方图调优因子 33

使用 optdiag 更改统计信息 35

使用 optdiag binary 36

使用 optdiag 输入模式更新选择性 37

编辑直方图 37

使用模拟统计信息 40

模拟统计信息的 optdiag 语法 40

模拟统计信息输出 40

装载和使用模拟统计信息的要求 42

删除模拟统计信息 43

使用模拟统计信息运行查询 44

包含双引号的字符数据 44

SQL 命令对统计信息的影响 45

查询处理如何影响 systabstats 46

使用 sp_showoptstats 查看统计信息和直方图 47

索引 49

 


21、程序员参考 jConnect for JDBC 7.0.7

本书内容 vii

 

1 简介 1

什么是 JDBC? 1

什么是 jConnect? 3

2 编程信息 5

设置 jConnect 5

设置 jConnect 版本 5

调用 jConnect 驱动程序 7

J2EE 服务器配置 jConnect 8

建立连接 9

连接属性 9

连接到 Adaptive Server 25

使用 sql.ini interfaces 文件目录服务 27

使用 JNDI 连接到服务器 28

处理国际化和本地化 33

使用 jConnect 传递 Unicode 数据 33

jConnect 字符集转换程序 35

处理数据库 39

实施高可用性故障切换支持 40

执行服务器到服务器的远程过程调用 44

使用 Adaptive Server 的宽表支持 45

访问数据库元数据 46

对结果集使用游标 47

使用包括 COMPUTE 子句的 Transact-SQL 查询 58

批处理更新支持 59

通过存储过程的结果集更新数据库 60

使用数据类型 61

仅数据锁定表中的可变长度行 68

大对象 (LOB) 支持 68

大对象定位符支持 69

实施高级功能 70

使用 BCP 插入功能 70

受支持的 Adaptive Server Cluster Edition 功能 71

使用事件通知 72

处理错误消息 75

使用口令加密 80

Java 对象作为列数据存储在表中 82

使用动态类装载 87

JDBC 4.0 规范支持 90

JDBC 3.0 规范支持 91

JDBC 2.0 选件工具包扩展支持 93

JDBC 标准的约束与说明 101

不受支持的 JDBC 4.0 规范要求 101

使用 Connection.isClosed IS_CLOSED_TEST 101

对未处理的结果使用 Statement.close 102

调整多线程 103

使用 ResultSet.getCursorName 103

执行存储过程 104

3 安全性 107

概述 107

限制 108

实现自定义套接字插件 108

创建和配置自定义套接字 109

Kerberos 112

Kerberos 配置 jConnect 应用程序 112

GSSMANAGER_CLASS 连接属性 113

设置 Kerberos 环境 116

示例应用程序 118

krb5.conf 配置文件 120

互操作性 122

故障排除 123

相关文档 124

4 故障排除 125

使用 jConnect 进行调试 125

获取 Debug 类的一个实例 125

在应用程序中打开调试程序 126

在应用程序中关闭调试程序 127

为调试程序设置 CLASSPATH 127

使用 Debug 方法 127

动态日志记录 129

捕获 TDS 通信 130

PROTOCOL_CAPTURE 连接属性 130

Capture 类中的 pause resume 方法 130

解决连接错误 131

网关连接被拒绝 131

管理 jConnect 应用程序所使用的内存 132

解决存储过程错误 133

RPC 返回比已注册参数少的输出参数 133

在返回输出参数时出现获取 / 状态错误 133

在非链式事务模式中执行存储过程 133

解决自定义套接字执行错误 134

5 性能和调优 135

改善 jConnect 性能 135

BigDecimal 范围重设 136

REPEAT_READ 连接属性 136

SunIoConverter 字符集转换 136

对动态 SQL 中的预准备语句的性能调优 137

选择预准备语句和存储过程 138

可移植应用程序中的预准备语句 138

具有 jConnect 扩展的预准备语句 139

Connection.prepareStatement 140

DYNAMIC_PREPARE 连接属性 141

SybConnection.prepareStatement 142

ESCAPE_PROCESSING_DEFAULT 连接属性 143

jConnect 中的优化批处理 143

游标性能 144

LANGUAGE_CURSOR 连接属性 145

6 迁移 jConnect 应用程序 147

jConnect 7.x 迁移应用程序 147

更改 Sybase 扩展 148

扩展更改示例 148

方法名称 149

Debug 149

7 Web 服务器网关 151

关于 Web 服务器网关 151

使用 TDS 贯通 151

配置 jConnect 和网关 152

使用要求 155

阅读 index.html 文件 156

运行示例 Isql 小程序 156

使用 TDS 贯通服务器小程序 157

检查要求 158

安装服务器小程序 158

调用服务器小程序 160

跟踪活动的 TDS 会话 160

恢复 TDS 会话 160

附录 A jConnect 示例程序 161

运行 IsqlApp 161

运行 jConnect 示例程序和代码 163

示例应用程序 163

示例代码 164

附录 B SQL 例外与警告消息 167

词汇表 189

索引 193

 


22、Adaptive Server Enterprise 中的 Java

 

1 数据库中的 Java 简介 1

数据库中的 Java 的优点 1

数据库中 Java 的功能 2

在数据库中调用 Java 方法 2

Java 类存储为数据库类型 3

在数据库中存储和查询 XML 3

Java 组件 3

Adaptive Server 15.0.3 和更高版本中的功能变化 4

类分发变化 4

PCA/JVM 在无人参与模式下运行 5

内存管理变化 5

类装载程序行为变化 5

标准 6

数据库中的 Java :问题和解答 6

主要功能有哪些? 6

如何在数据库中存储 Java 指令? 7

如何在数据库中执行 Java 7

支持哪些 Java 虚拟机 (JVM) 7

什么是无人参与模式? 7

什么是 JDBC 8

如何将 Java SQL 一起使用? 8

什么是 Java API 8

Java API 支持哪些 Java 类? 8

是否可以在数据库中安装用户定义的类? 9

是否可以使用 Java 访问数据? 9

是否可以在客户端和服务器上使用相同的类? 9

如何在 SQL 中使用 Java 9

在何处查找数据库中的 Java 的相关信息? 10

不能使用数据库中的 Java 执行的操作 10

2 管理 Java 环境 11

Java 环境组件 12

JVM 可插入组件 12

可插入组件适配器 /JVM (PCA/JVM) 13

可插入组件接口 (PCI) PCI 13

PCI 内存池 14

sybpcidb 数据库 15

如何在 sybpcidb 中组织配置值 16

何时更改配置值 16

服务器级选项 17

PCI 桥的配置选项 17

PCA/JVM 的配置选项 17

在运行的服务器中更改配置值 18

重新启动 Adaptive Server 以更改配置值 18

在初始化 JVM 之前更改配置值 19

在初始化 JVM 之后更改配置值 19

将缺省配置值恢复为 sybpcidb 20

使用监控表显示有关 PCI 桥的信息 21

3 在数据库中准备和维 Java 23

Java 运行环境 23

数据库中的 Java 23

JDBC 驱动程序 24

JVM 24

启用 Java 25

在数据库中安装 Java 25

使用 installjava 25

引用其它 Java-SQL 28

查看有关安装的类和 JAR 的信息 28

下载安装的类和 JAR 29

删除类和 JAR 29

保留类 30

4 SQL 中使用 Java 31

一般概念 31

使用 Java 需要考虑的事项 32

Java-SQL 名称 32

使用 Java 类作为数据类型 33

创建和更改包含 Java-SQL 列的表 34

选择、插入、更新和删除 Java 对象 35

SQL 调用 Java 方法 37

方法示例 38

Java-SQL 方法中的异常 39

表示 Java 实例 39

Java-SQL 数据项的赋值属性 40

Java SQL 字段之间的数据类型映射 42

数据和标识符的字符集 43

Java-SQL 数据中的子类型 43

扩大转换 43

缩小转换 44

运行时与编译期数据类型 44

Java-SQL 数据中的空值的处理 45

对空值实例字段与方法的引用 45

空值作为 Java-SQL 方法的参 47

使用 SQL convert 函数时的空值 48

Java-SQL string 数据 49

零长度字符串 49

类型和无类型方法 50

Java 无类型实例方法 50

Java 无类型静态方法 52

等同性和排序运算 52

求值顺序和 Java 方法调用 53

53

变量和参数 54

表达式中的确定性 Java 函数 54

Java-SQL 类中的静态变量 56

Adaptive Server 15.0.3 和更高版本中的静态变量更改 57

Cluster Edition 中的静态变量更改 57

多个数据库中的 Java 57

范围 58

跨数据库引用 58

类间传送 59

传递类间参数 60

临时数据库和工作数据库 60

Java 60

5 使用 JDBC 访问数据 67

概述 67

JDBC 概念和术语 68

客户端与服务器端 JDBC 之间的差异 68

权限 69

使用 JDBC 访问数据 69

JDBCExamples 类的概述 70

main( ) serverMain( ) 方法 71

获取一个 JDBC 连接: Connecter( ) 方法 72

将操作传递给其它方法: doAction( ) 方法 72

执行必要的 SQL 操作: doSQL( ) 方法 73

执行 update 语句: updater( ) 方法 73

执行 select 语句: selecter( ) 方法 73

调用 SQL 存储过程: caller( ) 方法 75

本机 JDBC 驱动程序中的错误处理 76

JDBCExamples 78

main() 方法 78

serverMain( ) 方法 79

connecter( ) 方法 79

doAction( ) 方法 80

doSQL( ) 方法 81

updater( ) 方法 81

selecter( ) 方法 82

caller( ) 方法 83

6 SQLJ 函数和存储过程 85

概述 85

符合 SQLJ 1 部分规范 86

一般问题 86

安全性和权限 87

SQLJ 示例 87

Adaptive Server 中调用 Java 方法 88

使用 Sybase Central 管理 SQLJ 函数和过程 90

SQLJ 用户定义函数 91

处理空参数值 93

删除 SQLJ 函数名 95

SQLJ 存储过程 95

修改 SQL 数据 97

使用输入和输出参数 99

返回结果集 102

查看有关 SQLJ 函数和过程的信息 105

高级主题 105

映射 Java SQL 数据类型 106

使用命令 main 方法 109

SQLJ Sybase 实现:比较 110

SQLJExamples 112

7 在数据库中调试 Java 117

支持的 Java 调试程序 117

设置 Java 调试 118

配置服务器以支持调试 118

将远程调试程序连接到 JVM 调试代理 119

8 使用 Java 访问文件和网络 121

使用 java.io 访问文件 121

用户标识和权限 122

指定文件 I/O 目录: UNIX 平台 123

指定文件 I/O 目录: Windows 平台 125

文件 I/O 更改 125

打开现有文件的规则 126

使用文件打开操作创建文件的规则 127

最终文件检查 128

使用 java.net 访问文件 128

示例 128

9 其它主题 131

服务器中的 Java 类的 JDK 要求 131

赋值 132

编译期赋值规则 132

运行时赋值规则 132

允许的转换 133

Java-SQL 对象传送到客户端 133

改善性能的建议 134

最大限度降低从 SQL JVM 的调用数 134

应小心使用 java.lang.Thread 135

确定是否在 PCA/JVM 中运行 136

避免在多引擎环境中使用 SQL 循环 136

控制在 PCA/JVM 中访问本机方法 137

不支持的 Java API 包、类和方法 138

受限制的 Java 包、类和方法 138

不支持的 java.sql 方法和接口 140

Java 中调用 SQL 141

特殊注意事项 141

Java 方法中的 Transact-SQL 命令 142

Java SQL 之间的数据类型映射 146

Java-SQL 标识符 148

Java-SQL 类和包名称 149

Java-SQL 列声明 150

Java-SQL 变量声明 150

Java-SQL 列引用 151

Java-SQL 成员引用 152

Java-SQL 方法调用 153

词汇表 155

索引 159

 


23、组件集成服务用户指南

 

1 简介 1

 

2 了解组件集成服务 3

基本概念 3

访问方法 4

服务器类 4

对象类型 4

远程服务器的接口 5

代理表 6

使用 create table 命令 6

使用 create existing table 命令 6

使用 create proxy_table 命令 8

将远程过程作为代理表 8

服务器限制 10

级联代理表 14

代理数据库 14

用户代理数据库 14

系统代理数据库 17

文件系统访问 19

安全注意事项 19

目录访问 19

通过下级目录递归 22

文件访问 22

远程服务器 24

服务器类 ASEnterprise 25

服务器类 ASAnywhere 25

服务器类 ASIQ 25

服务器类 direct_connect 26

服务器类 sds 26

服务器类 RPCServer 26

连接管理 27

不通过 interfaces 文件连接到远程服务器 27

LDAP 目录服务 28

SSL 的安全通信 29

使用 Kerberos 的安全通信 29

安全问题 33

远程服务器登录 34

映射外部登录名 35

远程服务器连接故障切换 37

远程服务器功能 37

查询处理 38

处理步骤 38

RPC 处理和组件集成服务 43

节点处理器和外发 RPC 43

组件集成服务和外发 RPC 43

RPC 的文本参数 45

XJS/390 支持文本参数 46

分布式事务管理 47

服务器类和 ASTC 47

DTM-enabled 服务器 48

Pre-DTM 服务器 48

strict DTM enforcement 48

enable xact coordination 49

启用组件集成服 49

事务性 RPC 49

对事务管理的限制 50

Adaptive Server Adaptive Server update statistics 50

限制 50

对非 Adaptive Server 端运行 update statistics 51

数据库中的 Java 51

@@textsize 52

@@stringsize 52

Java 类列的约束 52

错误消息 52

Java 抽象数据类型 (ADT) 53

数据类型 54

Unicode 支持 54

数据类型转换 56

text image 数据类型 57

配置与调优 61

使用 sp_configure 61

状态的全局变量 64

3 SQL 参考 65

dbcc 命令 65

dbcc 选项 66

跟踪标志 66

函数 68

组件集成服务内对函数的支持 68

集合函数 68

数据类型转换函数 69

日期函数 69

数学函数 69

安全性函数 70

字符串函数 71

系统函数 71

Text image 函数 73

Transact-SQL 命令 73

alter table 74

case 76

connect to...disconnect 76

create existing table 76

create index 84

create table 85

delete 87

drop index 87

fetch 88

insert 89

readtext 90

select 91

truncate table 92

update 92

update statistics 93

writetext 94

直通模式 95

connect to 95

sp_autoconnect 97

sp_passthru 97

sp_remotesql 98

带引号标识符支持 99

分隔标识符支持 99

auto identity 选项 99

触发器 100

 

附录 A 教程 101

 

附录 B 故障排除 107

 


24、Ribo 用户指南

 

Ribo 简介 1

前提条件 1

捕获数据 2

命令行选项 2

转换数据 3

使用 GUI 捕获和转换数据 4

使用过滤器 5

创建自定义过滤器 7

使用自定义过滤器 7

获取帮助及其它信息 8

技术支持部门 8

下载 Sybase EBF 和维护报告 8

Sybase 产品和组件认证 9

创建 MySybase 配置文件 9

辅助功能特性 9

索引 11

 


25、内存数据库用户指南

 

1 内存数据库 1

高速缓存和缓冲区支持 4

持久性级别 6

临时数据库和内存临时数据库 7

多数据库事务和数据库类型 8

模板数据库 8

改变数据库以使用新模板 10

进行最少日志记录操作的命令 10

内存数据库和宽松持久性数据库的限制 10

已更改的系统过程 12

2 管理内存数据库和宽松持久性数据库 15

为内存数据库指定命名高速缓存 15

检验配置文件的更改 16

更改内存数据库的静态配置参数 17

创建内存设备 17

创建内存数据库 18

用宽松持久性创建磁盘驻留式数据库 18

管理内存数据库 19

调整内存存储高速缓存的大小 19

删除内存存储高速缓存 19

增加内存数据库的大小 19

储和装载内存数据库 20

删除内存数据库 21

删除内存设备 21

3 最少日志记录 DML 23

DML 日志记录设置的类型 23

数据库级日志记录 24

表级日志记录 25

会话级日志记录 27

其它最少日志记录规则 27

事务性语义 28

日志记录并发事务 29

ddl in tran 设置为 true 的最少日志记录模式 30

参照完整性约束的影响 31

最少日志记录模式下的多语句事务 31

存储过程和最少日志记录 DML 33

在触发器中包括 set dml_logging 36

使用延迟更新 37

获取诊断信息 38

4 内存数据库的性能和调优 39

配置内存存储高速缓存 39

高速缓存布局 40

内存数据库的 sp_sysmon 输出 41

监控缺省数据高速缓存性能 43

为内存设备组织物理数据 44

低持久性数据库的性能优化 44

调整检查点时间间隔 47

最少日志记录 DML 48

转储和装载内存数据库 51

螺旋锁争用和网络连接调优 51

改进对锁管理程序散列表螺旋锁比率的争用 52

确定网络连接数 53

索引 57

 


26、Sybase Control Center for Adaptive Server® Enterprise