`
bluedusk
  • 浏览: 263612 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

 三、        数据库管理
1、        设备与数据库管理
创建一个设备:
Disk init name = “dev02”,physname = “e:dev02.dat”,dsync=false,size = “50M”
创建一个数据库:
Create database mydb on dev02=”10M” log on logo2=”2M” 
扩充数据库空间:
Alter database mydb on dev02=10
护充日志空间:
Alter database mydb log on log02 = 10M

将日志与数据分别放在不同的物料设备上,有以下几点好处:
        做日志备份时节省时间和资源
        建立固定日志大小,以防止其它数据库活动竞争空间
        提高性能
        降低数据库和日志同时损坏的可能性

2、        数据库的备份与恢复
        数据库备份: 
                Dump database 数据库名(mydb) to “e:mydb.dump”
        数据库恢复:
                Load database数据库名(testdb) from “e:mydb.dump” with headeronly

        日志满后需要截日志解决:
dump tran mydb with truncate_only
dump tran mydb with no_log
truncate_only 与 no_log的区别详见数据库备份与恢复
当日志满或者别的原因导致有事务挂起的时候,with   truncate_only是不管用的,因为它也会被挂起,用with   no_log是没问题的,只要数据库的状态是online,不过可能会导致数据库不一致,尤其是在此之前做过alter   database扩数据库空间的话。
        为什么有些时候无法截断日志
有两种情况,可能出现这个问题。一是应用系统给SQL Server发送了一个用户自定义事务,一直未提交,这个最早活跃事务阻碍系统截断日志。二是客户端向SQL Server发送了一个修改数量大的事务,清日志时,该事务还正在执行之中,此事务所涉及的日志只能等到事务结束后,才能被截掉。 
对于第一种情况,只要督促用户退出应用或者提交事务,系统管理员便可清掉日志。因为给SQL Server发送Dump transaction with no-log或者with truncate-only,它截掉事务日志的非活跃部分。所谓非活跃部分是指服务器检查点之间的所有已提交或回退的事务。而从最早的未提交的事务到最近的日志记录之间的事务日志记录被称为活跃的。从此可以看明,打开的事务能致使日志上涨,因为在最早活跃事务之后的日志不能被截除。 
对于第二种情况,道理也同上。只是在处理它时,需慎重从事。如果这个大事务已运行较长时间,应尽量想法扩大数据库日志空间,保证该事务正常结束。若该事务被强行回滚,SQL Server需要做大量的处理工作,往往是正向执行时间的几倍,系统恢复时间长,可能会影响正常使用的时间

3、        数据库表管理 
表在用过一段时间后会出现性能下降,插入、删除、更新数据非常慢等问题,可用optdiag命令查看当前表的统计信息,查看聚簇率是否降低,是否有页碎片等信息,可用以下几种方法消除页碎片: 
对于APL表
可删除索引重建
用BCP命令将数据导一遍
用SELECT INTO 命令重新建表
对于DOL表,除用以上方式外,还可以用reorg rebuild tablename命令完成

备份表操作:
bcp [数据库名]..[表名] out e:aa.txt –C –U[用户] –P[密码] –S[服务名]

4、        Tempdb 库的管理
以下几种操作会对tempdb 有影响
        order by 
利用聚集索引可以避免利用tempdb资源,因为聚集索引本身可以排序
        group by 
尽可能少的使用group by 
        where 关联
set sort_merge on 可以提高关联速度,不过可能会占用系统资源
        在tempdb中创建表
create table #name 会话级
create table name  shutdown级
        建索引也可以利用

使用sp_helpdb命令可查看tempdb的情况 Sqlclub.cn 

为tempdb指定命名缓存,首先创建命名缓存,前面已经介绍创建语法,再绑定

                使用tempdb的三大问题:
1)、数据库大小的问题
扩数据库大小或可以自己建一个数据库放里面
2)、性能问题
将tempdb放到速度较快的设备上,或将tempdb放到命名缓存里,考虑将tempdb放到多个设备上
3)、锁的竞争
系统表的锁竞争,SYBASE12.3.0中支持多个临时数据库,可以将用户绑定到其它临时数据库上。  

 

四、        性能优化
1、        Adaptive server 优化器:
优化器统计值存储在两个系统表中:
Systabstats:存储表和索级级的统计,如页数、行数、索引页数、聚集率等
Sysstatistics:存储列级已知的统计,如密度值、直方图值等
将统计值存放在表中的好处:
统计值的空间受数据库尺寸的限制
基于表的统计值有很高的精确度
基于表的方法提供了一个全局仓库,使排错和收集信息简单化
基于表的方法有可扩展性,对以后加强功能的处理比较简单、容易

2、        使用optdiag查看优化器统计
Optdiag是显示、修改、模拟统计值的命令行工具
查看表的统计值命令:
Optdiag statistics dbname..tbname –U –P

管理优化器统计值:
Create index 创建索引 
Upate statistics 更新统计值
Delete statistics 删除统计值
Sp_flushstats 从内存中刷新统计值

使用sp_sysmon 监控数据页聚集率

3、        数据库调优
数据库系统参数配置的调优:
修改内存参数
合理的分配存储过程缓冲区与数据缓冲区的大小
合理分配网络包的大小
设置锁的个数
设置锁的机制
建立索引与表分区
数据库服务器可用CPU的个数
扩充TEMPDB的大小
增加use log cache size

4、        应用程序的调优:
尽量将事务最小化
索引的建立与SQL的写法要匹配
尽量减少网络流量
并发数多时,可让客户端承担部分工作量

扫描慢的时候加  set sort_merge on 合并连接会快很多,缺点是会在执行期间占用很多资源。会话结束后自动结束  

分享到:
评论

相关推荐

    Sybase学习笔记.doc

    Sybase学习笔记 与其看枯燥的教程不如读学习的心得

    sybase笔记.doc

    sybase笔记.docsybase笔记.doc

    Sybase学习笔记.zip

    Sybase学习笔记.zip

    sybase12.5 自学笔记

    sybase12.5学习、工作笔记,希望对你有帮助。

    sybase培训笔记

    2. 架构和专业述语 3. 环境变量和安装 4. 怎样创建数据库 5. 设置服务器和数据选项 6. Sybase IQ索引和数据类型 7. 创建表和索引 8. Sybase IQ内存配置 9. 从文件中加载数据 10. 用INSERT语句加载数据 11....

    linux64位系统安装sybase12.54笔记

    linux5.5 64位系统安装sybase12.5 isql登录提示非官方语言处理 Segmentation fault报错修复 sybase odbc配置

    SYBASE学习笔记

    SYBASE的学习笔记 供大家学习

    SYBASE IQ存储过程学习笔记

    SybaseIQ存储过程学习笔记.docx SYBASE IQ存储过程学习笔记 1. 存储过程 存储过程将过程化的SQL语句存储在数据库中,供所有程序使用。存储过程中可以包含控制语句,如LOOP循环语句、IF和CASE这样的条件语句。存储过程...

    SybaseIQ存储过程学习笔记

    SybaseIQ存储过程学习笔记,有关sybase数据库性能优化,各种数据库参数的配置

    Sybase简单命令笔记_Sybase学习资料_sybase命令_

    Sybase常用指令,例如sp_who等Sybase专有的指令,虽然现在基本没人用Sybase了,但总会有人用的,不是吗?

    初学者sybase最好的入门资料

    sybase最好的入门资料,基于sybase的整个开发流程以及sybase的全面介绍,还有sybase的学习笔记,帮助初学者快速入门。

    sybase学习资料

    经过探索总结出来的sybase学习笔记,适合sybase初学者快速掌握。

    《Sybase_入门学习笔记(免费).doc》

    sybase的学习比较,基础sybase的知识,适用于刚刚接触sybase的同学。

    恢复Sybase SQL Anywhere数据库的好方法

    SybaseSQLAnywhere是Sybase公司开发的一种小型数据库产品,有单用户版和多用户版,可安装在Win95、Win98、NT、Netware等平台。SQLAnywhere的SQL语句基本上和SybaseAdaptiveServer一致;而且功能也相当强;Power...

    sybasezhinan

    sybase for beginner Sybase学习笔记

    jdbc笔记整理 sql

    //Sybase 数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); //MySQL 数据库 Class.forName("com.mysql.jdbc.Driver").newInstance(); //PostgreSQL 数据库 Class.forNaem("org.postgresql.Driver...

    韩顺平oracle学习笔记

    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...

    Sybase语言基础学习指南,初学必备,很老的一门技术!不过在金融领域依然很坚强!

    初级的sybase语言学习方法,简单的笔记记录,适合初学的计科专业学生学习使用。

    Sybase案例分析COGON系统下即时护理系统

    为使医师、护士与其他医务人员都能获病人的关键信息,Nguyen与Cogon系统公司一起建立了即时护理信息系统(MCIS),采用iAnywhere Solutions的SQL Anywhere Studio。MCIS处理存储在不同医院信息系统中的医疗护理数据,...

    oracle全程笔记及代码

    关系型数据库产品:Oracle(Oracle公司产品)、DB2(IBM产品)、SQL Server(微软的产品)、Sybase(赛贝斯公司产品)、MySQL(Oracle 公司产品) (2)关系模型的组成:数据结构+数据操作+数据完整性,数据结构指表、...

Global site tag (gtag.js) - Google Analytics