范例
当前位置:首页 > 其他范文 > 范例 > 列表页

数据库系统范例精选

小草范文网  发布于:2017-03-29  分类: 范例 手机版

篇一:大型数据库的优化方法及实例

大型数据库的优化方法及实例

尹德明 杨富玉 杨莹 时鹏泉

中国金融电子化公司

E_mail: dm_mis@mail.china.com

1. 引言

随着银行业数据集中,作为整个系统核心的数据库,其存放、管理的数据越来越庞大,已经超越GB而到达TB数据量层次,数据库的性能成为整个系统性能的关键。

国库会计核算系统是国库部门用以进行国库业务的会计核算,并通过支付系统、国库内部往来、同城票据交换系统进行资金清算的计算机网络系统。国家金库会计核算系统每天处理的税票数据多达10万笔,税收高峰可能会到100万笔,这样一年累计下来其中历史登记簿中的数据达到2000万条以上,给检索和数据处理带来非常大的困难。

如何对于一个已经上线运行的重要业务系统,通过对数据库的优化和简单的系统流程调整,实现系统性能的大幅提升具有现实、迫切、重要的意义。

2. 优化策略

根据Sybase的数据存储机制,在进行一段时期的数据删除、插入和更新等操作后,数据库往往会产生大量的碎片。大量碎片的存在,会严重影响数据库的I/O性能,如果在使用数据库一段时间后,整理碎片,可以提高数据库的性能。由于国家金库会计核算系统在预处理、日间报解、日初始化等步骤,会大批量进行数据删除、插入和更新等操作,因此会产生大量的数据碎片。碎片整理对于国家金库会计核算系统性能优化将会有重要效果。

Sybase Adaptive Server对于按顺序存储和访问的页,在单个I/O中最多读取八个数据页。由于大部分I/O时间都花在磁盘上的物理定位和搜寻上,因此大I/O可极大地减少磁盘访问时间。在大多数情况下,希望在缺省数据高速缓存中配置一个16K缓冲池。为事务日志创建4K缓冲池可极大地减少数据库系统日志写操作的数量。

好的性能同优良的数据库设计及优秀的程序写法关系极大,可以这样说,如果一个数据库没有好的设计及对程序未进行优化的话即使对参数进行调整也不可能有好的性能。

3. 数据库碎片整理

由于Sybase是通过OAM页、分配单元和扩展页来管理数据的,所以对OLTP应用的Database Server会十分频繁地进行数据删除、插入和更新等操作,时间一长就会出现以下几种情况:

(1)页碎片

即本来可以存放在一个页上的数据却分散地存储在多个页上。如果这些页存储在不同的扩展单元上,Database Server就要访问多个扩展单元,因此降低了系统性能。

(2)扩展单元碎片

在堆表中,当删除数据链中间的记录行时,会出现空页。随着空页的累积,扩展单元的利用率也会下降,从而出现扩展单元碎片。带cluster index的table也有可能出现扩展单元碎片。当有扩展单元碎片存在,会出现以下问题:

对表进行处理时,常常出现死锁;利用较大的I/O操作或增加I/O缓冲区的大小也无法改变较慢的I/O速度;行操作的争用。

(3)扩展单元遍历

带有cluster index的table会由于插入记录而导致页分裂,但当删除记录后,页会获得释放,从而形成跨几个扩展单元和分配单元的数据,而要访问该数据就必须遍历几个扩展单元和分配单元。这将导致访问/查询记录的时间大大延长,开始时数据库的性能虽然较高,

但使用一段时间后性能就会下降等问题。

实际上,数据在存储空间上排列得越紧密有序,Database Server访问的速度就越快,消除碎片有助于提高系统的性能和更有效地利用数据存储空间。

(4) 碎片优化方法

处理碎片有多种方法,如重新定义table的填充因子,根据table的定义删除并重新创建索引、重建表等。

可以采用重新创建聚簇索来整理数据库碎片,这样的好处是碎片整理和索引优化可以同时进行。如对table_name进行重建索引。

if exists (select 1 from sysindexes where id = object_id('table_name')

and name = 'PK_HTD_BYSSRHZ' and indid > 0 and indid < 255)

alter table 'table_name drop constraint PK_HTD_BYSSRHZ

alter table 'table_name’ add constraint PK_HTD_BYSSRHZ PRIMARY KEY

CLUSTERED (zwrq,skgkdm,ssgkdm,mdgkdm,ysjc,yszl, jgdm,

bjcs,sjbz,kmdm,ssyf,fczbz)

4.内存优化

(1)配置16K缓冲池为总数据高速缓存的25%

sp_poolconfig 'default data cache',35M','16K'

(2)配置4K缓冲池为总数据高速缓存的15%

sp_poolconfig 'default data cache',21M','4K'

5.索引调优

好的性能离不开优良的数据库设计, 数据库性能优化的目标就是尽量减少I/O,提高吞吐量,从而缩短系统的响应时间,而实现这一目标的重要手段之一——就是创建合理的索引:

索引可以起到以下作用:

(1) 避免表扫描;

(2) 点查询中定位包含特定数据的特定数据页;

(3) 范围(域)查询确定上下限;

(4) 索引覆盖,完全避免存取数据页;

(5) 连接时避免排序。

建立索引的注意事项:

(1) Unique和primary key可以创建唯一索引,缺省情况下unique创建nonclustered,

primary key创建clustered索引;

(2) Allpages表一般都需要创建clustered索引或分区以减少最后一页的争夺;

(3) 如果需要大量插入,不要将clustered索引建立在单调上升的字段上,如identity;

对于dol表,此问题并不严重,但allpages却往往是锁争夺的根源;

(4) 对allpages表,如有可能不要将clustered索引建立在频繁更新的字段上;

(5) 使用索引覆盖来进行关键查询和不太频繁的查询;

(6) 如果索引字段元唯一建立唯一索引,优化程序知道只有一行纪录匹配;

(7) 索引键尽可能小,如果可能使用最小的数据类型。确保连接字段元数据类型相同,

如果连接查询需要转换数据类型就不能使用索引;

(8) 使用索引尽可能使用前导列能够提供良好的性能(即前导列要具备一定的选择性)。

6. 代码调优

代码优化包括两个方面:(1)、SQL语句的优化;(2)、代码流程设计的优化。性能

低下的SQL语句往往来自于不恰当的索引设计、不充分的连接条件和不可优化的where子句;所以对于性能要求较高的功能模块中,我们通常需要考虑上述几个方面,从而写出性能优良的SQL语句;但是,在某些情况下,优良的SQL语句也不能完全解决性能问题,比如说:某个SQL语句对一个有200万笔数据的表进行检索,用时0.1秒,我想这样的性能应该说已经不错了,然而,如果在代码流程设计上需要对该语句循环1000次,那么对于该功能模块的整体性能来说,可能还是无法满足性能要求,所以说对于性能要求高的功能流程设计需要遵循一个原则:尽量减少检索表的次数。

(1)SQL语句优化

不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的。

在where子句中对列使用任何操作(比如:函数)都是在SQL运行时逐列计算得到的,因此查询优化器即使知道使用索引,也不得不进行部分或全部表扫描,以至于降低性能;然而对SQL语句换一种写法,可能有些结果在查询编译时就能得到,从而可以被SQL优化器优化,使用索引,避免表搜索。 如将代码:select max(zwrq) from table_name where substring(zwrq,1,6) = '200305' 修改成select max(zwrq) from table_name where zwrq >= '20030501' and zwrq <= '20030531' 和select max(zwrq) from table_name where zwrq like '200305%'

建立充分的连接条件。多表操作在被实际执行前,查询优化器会根据连接条件,列出几组可能的连接方案并从中找出系统开销最小的最佳方案。连接条件要充分考虑带有索引的表、行数多的表;内外表的选择可由公式:外层表中的匹配行数×内层表中每一次查找的次数来确定,乘积最小为最佳方案。

(2) 代码流程设计的优化

在大型数据库中,如何提高数据操作效率值得关注。可以根据不同系统的实际情况对代码流程进行优化。如:

根据业务规则减少访问表的个数;通过预取多个SQL语句共用的查询条件,替代Where子句的自查询,从而简化了Sql语句的复杂度;减少对表检索的次数;由汇总某旬的所有发生额改为汇总该旬最大账务日期的最大报解次数的旬累计,从而减少数据库的吞吐量;对账部分的实现由游标循环对账改为通过内外两次表连接(即检索两次表)对账,从而大大减少了检索表的次数。

7.结论

经过数据库碎片整理,索引调优,内存优化,代码优化后,我们对某分库进行了导出数据接口和对账测试,测试表明优化取得了很大效果,优化是成功的。

篇二:数据库系统设计实例分析

青岛滨海学院数据库课程设计

目录

1系统介绍 ................................................................................................................................. 1 2需求分析 ................................................................................................................................. 1 2.1需求调查 ......................................................................................................................... 1 2.2 数据流程图 ..................................................................................................................... 2 2.3 数据字典 ......................................................................................................................... 3 2.3 数据字典 ......................................................................................................................... 4 3 概念结构设计 ........................................................................................................................ 5 4逻辑结构设计 ......................................................................................................................... 6 5物理结构设计 ......................................................................................................................... 6 选用什么数据库,为什么等 ................................................................................................ 6 5.1数据库的创建 ................................................................................................................. 6 5.2数据表的创建 ............................................................................... 错误!未定义书签。 6数据库实施 ............................................................................................................................. 7 6.1学生用户基本信息表 ..................................................................................................... 7 6.2管理员基本信息表 ......................................................................................................... 7 6.3图书基本信息表 ............................................................................................................. 7 6.4 借阅图书信息表 ............................................................................................................. 8 6.5预约图书信息表 ............................................................................................................. 8 6.6还书信息表 ..................................................................................................................... 9 6.7约束创建 ....................................................................................................................... 10 6.8索引创建 ....................................................................................................................... 11 6.9视图创建 ....................................................................................................................... 12 6.10数据查询 ..................................................................................................................... 13 6.11数据操纵 ..................................................................................................................... 13 7系统运行与维护 ................................................................................................................... 14 7.1 系统的运行与维护 ....................................................................................................... 14 7.2系统评价 ....................................................................................................................... 14 7.3 系统遇到的问题和解决的办法 ................................................................................... 15 小 结 ........................................................................................................................................ 16

1系统介绍

图书馆作为校园文化服务部门,提供给学生和老师的是文献服务,作为校园的重要文化信息部门,也需要一套有效的图书管理系统来提高管理效率。

图书管理信息系统的目标是:信息收集制度化,信息加工标准化,信息传递规范化,信息内容系统化,信息储存档案化以及图书馆信息工作专业化。

图书借还书管理系统应该包括借阅图书,预约图书,图书续借和还书等基本内容。 ⑴图书的管理人员需要管理学生的资料。学生的资料主要包括:姓名,性别,学号,班级,院部,借阅许可等信息。其中借阅许可是由学生的借阅情况决定的,只要是在校本科生,已借阅图书不超过五本。

⑵图书管理人员必须对图书进行有效的管理。图书的资料主要有:书号,书名,作者,出版社,图书的使用状态等。其中图书的使用状态是被借阅,被预约等。

⑶系统应该给学生带来借阅图书,预约图书方便性。

⑷系统应该做到借阅图书和预约图书的无缝结合,及时掌握图书的状态,方便使用,最大程度地利用图书馆的资源。

⑸系统对学生借阅的图书延期时应给予提示和处理。

⑹系统管理主要是执行数据库的备份和恢复,数据库表的维护等工作,保证系统的正常运行。

2需求分析

2.1需求调查

(1)学生个人档案包括姓名,班级,性别,学号,班级,院部,借阅许可等信息等。 (2) 当图书被学生借阅时,系统要改变图书的状态,不再允许借阅,但是允许预约,而且每本书只能被一人借阅或同时被一人预约一次。

(3) 当学生借阅的图书延期时,图书馆要通知学生及时还书,并进行相应的处罚。 (4) 学生在系统可以查阅自己的借阅情况,归还自己借阅的图书。 图书馆借阅系统的用例包括以下内容:

? ? ?

查询图书 借阅图书 归还图书

? 预约图书 ?

查询借阅情况

2.2 数据流程图

图书馆借阅的数据流程图见下:

图例:

代表存储

代表处理

代表报表

代表传递

代表实体 代表参与

借书流程

还书流程:

预约流程:

2.3 数据字典

篇三:数据库系统设计实例分析

青岛滨海学院数据库课程设计

目录

1系统介绍 ................................................................................................................................. 1 2需求分析 ................................................................................................................................. 1 2.1需求调查 ......................................................................................................................... 1 2.2 数据流程图 ..................................................................................................................... 2 2.3 数据字典 ......................................................................................................................... 3 2.3 数据字典 ......................................................................................................................... 4 3 概念结构设计 ........................................................................................................................ 5 4逻辑结构设计 ......................................................................................................................... 6 5物理结构设计 ......................................................................................................................... 6 选用什么数据库,为什么等 ................................................................................................ 6 5.1数据库的创建 ................................................................................................................. 6 5.2数据表的创建 ............................................................................... 错误!未定义书签。 6数据库实施 ............................................................................................................................. 7 6.1学生用户基本信息表 ..................................................................................................... 7 6.2管理员基本信息表 ......................................................................................................... 7 6.3图书基本信息表 ............................................................................................................. 7 6.4 借阅图书信息表 ............................................................................................................. 8 6.5预约图书信息表 ............................................................................................................. 8 6.6还书信息表 ..................................................................................................................... 9 6.7约束创建 ....................................................................................................................... 10 6.8索引创建 ....................................................................................................................... 11 6.9视图创建 ....................................................................................................................... 12 6.10数据查询 ..................................................................................................................... 13 6.11数据操纵 ..................................................................................................................... 13 7系统运行与维护 ................................................................................................................... 14 7.1 系统的运行与维护 ....................................................................................................... 14 7.2系统评价 ....................................................................................................................... 14 7.3 系统遇到的问题和解决的办法 ................................................................................... 15 小 结 ........................................................................................................................................ 16

1系统介绍

图书馆作为校园文化服务部门,提供给学生和老师的是文献服务,作为校园的重要文化信息部门,也需要一套有效的图书管理系统来提高管理效率。

图书管理信息系统的目标是:信息收集制度化,信息加工标准化,信息传递规范化,信息内容系统化,信息储存档案化以及图书馆信息工作专业化。

图书借还书管

数据库系统范例精选

理系统应该包括借阅图书,预约图书,图书续借和还书等基本内容。 ⑴图书的管理人员需要管理学生的资料。学生的资料主要包括:姓名,性别,学号,班级,院部,借阅许可等信息。其中借阅许可是由学生的借阅情况决定的,只要是在校本科生,已借阅图书不超过五本。

⑵图书管理人员必须对图书进行有效的管理。图书的资料主要有:书号,书名,作者,出版社,图书的使用状态等。其中图书的使用状态是被借阅,被预约等。

⑶系统应该给学生带来借阅图书,预约图书方便性。

⑷系统应该做到借阅图书和预约图书的无缝结合,及时掌握图书的状态,方便使用,最大程度地利用图书馆的资源。

⑸系统对学生借阅的图书延期时应给予提示和处理。

⑹系统管理主要是执行数据库的备份和恢复,数据库表的维护等工作,保证系统的正常运行。

2需求分析

2.1需求调查

(1)学生个人档案包括姓名,班级,性别,学号,班级,院部,借阅许可等信息等。 (2) 当图书被学生借阅时,系统要改变图书的状态,不再允许借阅,但是允许预约,而且每本书只能被一人借阅或同时被一人预约一次。

(3) 当学生借阅的图书延期时,图书馆要通知学生及时还书,并进行相应的处罚。 (4) 学生在系统可以查阅自己的借阅情况,归还自己借阅的图书。 图书馆借阅系统的用例包括以下内容:

? ? ?

查询图书 借阅图书 归还图书

? 预约图书 ?

查询借阅情况

2.2 数据流程图

图书馆借阅的数据流程图见下:

图例:

代表存储

代表处理

代表报表

代表传递

代表实体 代表参与

借书流程

还书流程:

预约流程:

2.3 数据字典

本文已影响