`
bluedusk
  • 浏览: 270352 次
  • 性别: 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 合并连接会快很多,缺点是会在执行期间占用很多资源。会话结束后自动结束  

分享到:
评论

相关推荐

    linux64位系统安装sybase12.54笔记

    2. 创建Sybase用户和目录指定: - 创建Sybase组和用户,指定用户的家目录,并设置用户权限。 - 更改用户的密码,注意密码的安全性,避免使用简单或字典中的单词作为密码。 - 创建数据库数据存储目录并将其权限...

    Sybase学习笔记.zip

    **Sybase学习笔记** 在IT领域,数据库管理系统(DBMS)是不可或缺的一部分,而Sybase作为一款企业级的关系型数据库管理系统,曾广泛应用于金融、电信等关键行业。本笔记将深入探讨Sybase的核心概念、安装配置、SQL...

    sybase笔记.doc

    本笔记主要涵盖了Sybase中关于日期转换、用户创建以及数据库操作授权的相关知识。 1. **日期转换**: Sybase提供了`convert()`函数来实现日期和时间的格式转换。例如,`convert(char(10), getDate(), 120)`将当前...

    sybase12.5 自学笔记

    ### Sybase 12.5 自学笔记精要解析 #### Sybase 12.5 系统概览 Sybase 12.5 是一款由Sybase公司开发的数据库管理系统(DBMS),广泛应用于各种平台,提供强大的SQL查询语言支持,能够进行高效的数据管理和事务处理...

    sybase培训笔记

    2. IQ Store:存储实际数据,包括索引、事务日志等,扩展名为.iq。一个数据库只有一个IQ Store,可以位于文件系统或裸设备上,逻辑名为IQ_SYSTEM_MAIN。 3. IQ Temporary Store:用于临时数据,如索引构建过程中的...

    SYBASE学习笔记

    **SYBASE学习笔记** 在IT领域,SYBASE是一款历史悠久且功能强大的关系型数据库管理系统(RDBMS),由Sybase公司开发。本笔记旨在提供全面、深入的SYBASE学习指南,帮助初学者和进阶者更好地理解和掌握这款数据库...

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

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

    我的sybase学习资料

    4. **sybase学习笔记2_海阔天空.mht**:这可能是用户的学习笔记,涵盖了第二部分的内容,可能包括更深入的数据库操作、查询优化、性能调优等主题。 5. **Sybase数据备份bcp及dump_游走在边缘__.mht**:bcp和dump是...

    SYBASE IQ存储过程学习笔记

    【SYBASE IQ存储过程学习笔记】 在SYBASE IQ数据库中,存储过程是一种强大的工具,它允许用户编写并存储过程化的SQL语句,以便日后重复使用。存储过程不仅可以包含基本的SQL查询,还能够集成诸如LOOP循环、IF和CASE...

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

    ### Sybase 入门学习笔记知识点详解 #### 一、Sybase数据库简介 **1. 版本历史与发展** Sybase是由Mark B. Hiffman和Robert Epstern于1984年创立的,其数据库产品在1987年正式推出。Sybase主要分为三大版本: - ...

    SybaseIQ存储过程学习笔记

    2. **存储过程与函数的区别** - **存储过程**:可以执行一系列操作,包括数据修改和查询,可以有多个输出参数,但不一定返回单一值。 - **自定义函数**:类似存储过程,但必须返回单一值,其参数在函数内部不受...

    初学者sybase最好的入门资料

    2. **安装与配置**:了解如何在不同的操作系统(如Windows、Linux或Unix)上安装和配置Sybase ASE(Adaptive Server Enterprise)。这包括设置环境变量、创建服务器实例和配置网络服务。 3. **数据库创建与管理**:...

    Sybase SQL Anywhere5.0

    2. **数据库引擎** - **存储引擎**:SQL Anywhere 5.0采用了一种高效的存储机制,允许快速读取和写入数据,支持多种数据类型,包括数值、字符串、日期/时间等。 - **日志记录**:实时记录数据库操作,有助于故障...

    Sybase_SUP+SAPCRMERP_总体介绍

    2. **简化后端集成**:该平台为不同的企业应用提供了“开箱即得”的集成能力,包括SAP和Remedy等系统,以及其他利用数据库或面向服务架构(SOA)的应用程序。这种集成能力使得Sybase Unwired Platform成为了一个理想的...

    Sybase参考手册pdf

    "refman2.pdf"和"refman1.pdf"可能是Sybase的参考手册,涵盖了SQL语法、存储过程、触发器、索引等核心内容。"refman4.pdf"可能涉及更高级的主题,如性能调优、备份恢复策略。"sybase学习笔记.pdf"则可能是个人或社区...

    Sybase 移动计算解决方案

    2. **提高生产率**:移动应用允许员工在外出时也能完成工作,打破地域限制,提升工作效率。 3. **降低差错率**:通过自动化流程,可以减少人为错误,提高数据准确性。 4. **改进客户服务**:客户可以随时随地获取...

    Sybase SQL Anywhere 5.0

    **Sybase SQL Anywhere 5.0** 是一个强大的数据库管理系统,特别设计用于移动和分布式环境。这个版本在20世纪90年代末发布,它提供了高效的数据存储、管理和访问功能,尤其适合那些需要在远程位置或者离线环境中运行...

    sybase常用管理速查

    描述中的"在sybase的培训课上得到的"暗示了这份资料可能是培训教材或笔记,内容可能涵盖了从基础概念到高级特性的全面介绍,旨在帮助数据库管理员(DBA)和开发人员快速掌握Sybase ASE的日常管理和问题解决。...

    JDBC学习笔记--JDBC学习笔记

    JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...

Global site tag (gtag.js) - Google Analytics