转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
Adaptive Server Anywhere 7.0网上培训教材         ★★★★

Adaptive Server Anywhere 7.0网上培训教材

作者:闵涛 文章来源:闵涛的学习笔记 点击数:7842 更新时间:2009/4/22 23:09:43
bsp;
SELECT * FROM employee WHERE emp_id !=102 
SELECT * FROM employee WHERE emp_fname LIKE '%n' 
§在 WHERE 子句中应包含组合索引的领头列 


比较是否含搜索变量 :

以下包含: 
§emp_id = 102 
§emp_id IS NULL 
§emp_id > 200 
§employee.emp_id =department.dept_head_id 
§emp_id IN (102, 103, 104) 
§emp_fname LIKE 'rob%'

以下不包含: 
§emp_id !=102 
§emp_id IS NOT NULL 
§emp_id = 102 or emp_fname = 'Jane' 
§employee.emp_id = employee.manager_id 
§emp_id NOT IN (102, 103, 104) 
§emp_fname LIKE '%bert'

设法把不含搜索变量转换为含搜索变量 
§有些情况可通过重写 WHERE 子句来实现转换 
§例如: 
emp_id NOT IN (102, 103, 104) 
emp_id < 102 and > 104

(这些对于优化很有帮助--JAZY)

如何权衡 
§DSS 与 OLTP  
§不同要求造成的资源冲突 


查询设计 
§笛卡儿积 
在连接查询中若不包含 WHERE 子句则会发生笛卡儿积 
如果对个n 表进行连接,你必须至少给出 n-1 个连接条件 
 §限制 搜索变量允许优化器去利用索引 

查询优化器:
为执行一个查询识别最好的策略 
基于开销最低的原则 I/O 和 CPU 


依次估算: 
I/O 
表排序 
索引 
每个表仅能用到一个索引 

语法独立性 
§优化器采用查询语义 
§它可能会改写你的查询语句 
§在你的查询语句中修改谓语和表的安排次序,对查询优化器并不起作用。 



控制资源的使用 
§有可能找不到最有效的存取计划 
§要对继续寻找更多的查询计划及执行当前计划二者所需开销进行 
§比较 
§对大的复杂的查询提供更多的资源 


自我调谐 
§相等约束 
列值分布统计 
§把数据库统计删掉以强迫它重新编译(更新统计值) 
当数据库使用方式改变时 
当数据大量变动时 
DROP OPTIMIZER STATISTICS 


优化处理过程 
§1.对查询作语法分析转换 
§2. Adaptive Server Anywhere 打开优化处理游标 
§3. 把子查询展平为连接,去掉不必要的DISTINCT, 重写搜索变量。 
§4. 评估连接次序和 GROUP BY 策略 
§5. 利用统计和缺省去考察访问次序 
§6. 在执行之后,更新数据库统计。


展平子查询 
§嵌套子查询往往不如连接更为有效 
§实例: 
嵌套子查询不够有效: 
 SELECT * FROM sales_order o WHERE o.cust_id IN  (SELECT id FROM customer c WHERE c.state='NY’) 
如下连接较有效: 
 SELECT sales_order.* FROM sales_order KEY JOIN customer WHERE customer.state='NY'



优化器评估 
§估算将有多少行能满足此查询 
§估算的依据是: 
列统计 
部分索引扫描 
用户提供的值
缺省值 


列统计 
§查询每执行一次都被送入高速缓存 
列值分布 LIKE 谓词的可选择性 相等谓词 
§可保持15,000 个登记项 采用先进先出的调度策略 


管理统计值 
§对一个表的查询执行越频繁则其统计值就越精确 
§以下情况可能要把统计值删掉 
§ ( DROP OPTIMIZER STATISTICS): 
对数据库做了大规模的修改 
增加大量数据从根本上影响了数据的分布 
 §恢复统计的办法是: 
执行一次数据库中的典型查询 
利用脚本 


部分索引扫描 
§当没有统计可利用时被使用 
§只扫描最开头二个索引层 
§仅当搜索变量是处于该索引的最开头列时才有效 


人工估算 
§可人工提供估算值 
§优化器会优先考虑采用它 
§实例: 
 SELECT ship_date FROM sales_order_items WHERE (ship_date > '1998/10/30', 1)
满足条件的行数为1% 
§轻易不要在存储过程及触发器中采用! 
因为信息无法更新 


缺省的可选择性 
比较                              百分比为: 
     cola=colb                             0.035
       col=constant
       col IS NULL
       cola LIKE colb 
       col !=constant 
       Other LIKE or                              25
       EXISTS                                        50        
       Other equalities                          5
       Other inequalities                     25 
       Other IS NULL or BETWEEN       6


由 Sybase Central启动性能监视器 :


1. 打开要监视的数据库的 Statistics 文件夹 
2. 右击你想把它加入到 Performance Monitor 去的 Statistic 
3. 点击 Add to Performance Monitor 
4. 点击 Statistics Items 
5. 注意:统计显示采用不同颜色的线条


利用 Windows NT 性能监视器 
§1.打开 Administrative Tools 程序组 
§2. 点击 Performance Monitor 
§3. 选择 Edit &Ugrave; Add  
§4. 从Objec 列表中选中 
Adaptive Server Anywhere  
§5. 从Counte 选择 统计 
§6. 点击 Add 
§7. 点击 Done 
§注意:数据库必须在运行 
       

小结 
§影响数据库性能的因素包含硬件配置,磁盘和文件管理,以及数据库和查询语句的设计。
§使数据库性能下降的因素有不恰当的网络和服务器资源,硬盘过分的分片化,页面尺寸太小以及未使用事务日志。 
§既使硬件和软件配置都很恰当,但如果数据库设计的不好也会影响性能。 
§存储过程因减少网络交通量和把应用处理放在服务器一方而能改善性能。 
§触发器可以减少网络交通量及处理,但是它要求功能较强的服务器。 

(这节的很多概念和思想对于别的数据库产品也有很好的借鉴意义!-JAZY)

 jazy 回复于:2003-02-24 22:26:34 在数据库中使用Java

目标 
§说明在数据库中如何使用Java 
§说明Java怎样被储存在数据库中 
§配置数据库可使用Java 
§在数据库安装Java 类 
§操纵 (select, insert, update, delete) 表中的Java 数据类型 
§在SQL语句中使用Java 函数 
§调用Java存储过程 
§说明JDBC在 数据库访问中的作用

内容 
§如何在数据库中使用Java? 
§在数据库中储存Java 
§把数据库设置为能使用Java 
§SQL对Java的支持 
§Java术语概述 
§使用Java方法 
§在存储过程中使用JDBC 
§使用Java数据类型 
§更新和删去表数据行 
§使用Computed列 


如何在数据库中使用Java?
§你可以三种不同的方式使用Java类: 
作为函数 
作为存储过程 
作为复杂的数据类型


Java 环境 
§Sybase Java 虚机(VM) 
提供Java类的运行时环境 
Sybase Java VM 是 JDK 1.1.8的一个子集 
不是 Java的开发环境 
应使用 PowerJ 或 Sun JDK 进行开发 
§内置基本 Java 类 

设置数据库能使用Java
§让数据库可使用Java 
§安装用户类 
§为Java配置内存 


能使用 Java的数据库
§利用以下方式建立的数据库在缺省情况下都能 使用 Java 
§ CREATE DATABASE 语句 
   dbinit 命令行实用程序 
   Sybase Central 


让数据库能使用 Java


安装 Java 类
§你可把用户类安装为 
单个类,或者JARs 
§安装 Java 类,可使用 
Sybase Central,或者 交互式 SQL

安装 Java 类
§使用交互式SQL安装类或JAR 安装 
JAVA NEW FROM FILE 'path\\类Name.类'; 
§ 安装 
JAVA NEW JAR 'jarname' FROMFILE 'path\\JarName.jar'; 



建立Java 类
§Adaptive Server Anywhere 
不能完成Java 类的建立 
在数据库安装了Java类之后可对其进行排错 
§ 类的建立 应当使用标准的Java工具,比如 PowerJ 或 Sun Java SDK来编写和编译 


为Java配置内存 
§ Java VM 需要附加的 cache 
使用 -c 命令行选项指定额外的cache 
§Java VM 至少需要附加8M cache. 
§ dbeng7 -c 8M labTest.db 
§可考虑设置一个包含该命令行的 profile或快捷键 

Java 术语概述 
§是面向对象的 Java是由对象组成的 
§方法 包含在一个对象中的过程 
§类和实例 Java 对象是利用称之为类的原型对象来建立的 
利用一个类来实例化对象 
新对象是该类的一个实例
§类和实例方法 
为调用一个实例方法你建立该类的一个新实例然后依据它调用该方法 
你也可以直接调用类方法 
§Constructor(构造函数) 当一个对象被实例化时所调用的方法叫做 Constructor 
一个对象可能有多个constr


作为函数来使用 Java 方法:

SQL 函数 SELECT sqrt(12) 
等价的 Java 函数 SELECT java.lang.Math.sqrt(12) 


从Java调用实例方法
1、Java (使用 StringTokenizer) 

public class  Word { 
 public static int count(String arg) { 
 return new 
 java.util.StringTokenizer(arg).countTokens(); 
}
}

SELECT 语句 
2、SELECT description, Word.count(description) from product

在存储过程中使用 JDBC
§JDBC提供用于访问关系数据的API 
§客户-端 JDBC 允许客户通过特定的数据库驱动器 (比如, jConnect)去访问数据 
§服务器-端&n

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页


[聊天工具]企业邮件系统的利器----FoxMail Server  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]关于Windows2000Server的灾难恢复  [常用软件][网络]下载服务革命性风暴Poco Server评测
[C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…  [C语言系列]SQL Server到DB2连接服务器的实现
[C语言系列]SQL Server到SYBASE连接服务器的实现  [C语言系列]SQL Server到SQLBASE连接服务器的实现
[C语言系列]SQL Server连接VFP数据库的实现  [C语言系列]ASP+SQL Server之图象数据处理
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台