祝愿大家身体健康!

 站点注册  找回密码
 站点注册

QQ登录

只需一步,快速开始

查看: 5633|回复: 0

[参考资料] sybase 临时数据库tempdb

[复制链接]

[参考资料] sybase 临时数据库tempdb

[复制链接]
quanjin

主题

0

回帖

571

积分

高级会员

积分
571
贡献
在线时间
小时
2009-5-8 11:33:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?站点注册

×
缺省情况下,tempdb数据库是放置在master设备上,容量为2M,而临时数据库是活动最为平凡的数据库常常被用来排序、创建临时表、重格式化等操作,所以tempdb的优化应该受到特别的关注。本篇文章目的在于使你掌握临时数据库的优化策略以及临时表的优化使用。本文中,你将以调整临时库的位置开始,有步骤的完成临时数据库的优化,并在此过程中了解到优化临时数据库和临时表的一些方法和规则。

实验环境的要求:你应具有系统管理员的权限,系统中有auths和article表。

步骤:

第一步:调整临时库的位置

  tempdb数据库缺省放在master设备上,将临时数据库发在分离的设备上是更可取的。

1)  初始化一个用来存放临时数据库的设备

disk init

name="tempdb_dev",

physname="d:\sybase\example\tempdb.dat",

vdevno=13,

size=15360

(注意:如果将tempdb数据库放在多个设备上,需初始化多个数据库设备)

2)将临时数据库扩展到该一个设备上

    alter database tempdb on tempdb_dev=30

3)打开tempdb数据库,从段上删除master设备

sp_dropsegment "default",tempdb,master

sp_dropsegment logsegment,tempdb,master

4)发出如下命令,检查default段中是否不再包含master设备

       select dbid,name,segmap from sysusages,sysdevices

where sysdevices.low<=syusages.size+vstart

and sysdevices.high>=sysusages.size+vstart-1

and dbid=2

and(status=2 or status=3)

说明:若将临时数据库放在多个磁盘设备上,可以更好的利用并行查询特性来提高查询性能。

第二步:将临时数据库与高速缓冲进行绑定。

  由于临时表的创建、使用,临时数据库会频繁地使用数据缓存,所以应为临时数据库创建高速缓存,从而可以使其常驻内存并有助于分散I/O:

1、创建命名高速缓存

sp_cacheconfig “tempdb_cache”,”10m”,”mixed”

2、重新启动server

3、捆绑临时数据库到tempdb_cache高速缓存

sp_bindcache “tempdb_cache”, tempdb

4、若有大的I/O,配置内存池

第三步:优化临时表

     大多数临时表的使用是简单的,很少需要优化。但需要对临时表进行复杂的访问则

应通过使用多个过程或批处理来把表的创建和索引分开。以下两种技术可以改善临时表的优化

slash;         在临时表上创建索引

1)  临时表必须存在

2)  统计页必须存在(即不能在空表上创建索引)

slash;         把对临时表的复杂的使用分散到多个批处理或过程中,以便为优化器提供信息

下面的这个过程需要进行优化:

create proc base_proc

as

select * into #huge_result from auths

select * from article, #huge_result where article.author_code=

#huge_result.author_code and sex=”0”

使用两个过程可以得到更好的性能

1)create proc base_proc

as

select *

into #huge_result

from auths

exec select_proc

2)  create proc select_proc

       as

select *       from article,#huge_result

where  article.author_code=#huge_result.author_code and sex=”0”

说明:在同一个存储过程或批处理中,创建并使用一个表时,查询优化器无法决定这个表的大小。

结论:通过本实验我们知道,临时数据库经过优化可以极大的提高系统性能。实际工作中,必须考虑具体应用的情况,需长时间经验的积累。

评分

参与人数 1威望 +12 收起 理由
ehxz + 12 绮惧搧鏂囩珷

查看全部评分

共享共进共赢Sharing And Win-win Results
SYBASEBBS - 免责申明1、欢迎访问“SYBASEBBS.COM”,本文内容及相关资源来源于网络,版权归版权方所有!本站原创内容版权归本站所有,请勿转载!
2、本文内容仅代表作者观点,不代表本站立场,作者自负,本站资源仅供学习研究,请勿非法使用,否则后果自负!请下载后24小时内删除!
3、本文内容,包括但不限于源码、文字、图片等,仅供参考。本站不对其安全性,正确性等作出保证。但本站会尽量审核会员发表的内容。
4、如本帖侵犯到任何版权问题,请立即告知本站 ,本站将及时删除并致以最深的歉意!客服邮箱:admin@sybasebbs.com
您需要登录后才可以回帖 登录 | 站点注册

本版积分规则

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com

QQ|Archiver|PowerBuilder(PB)BBS社区 ( 鲁ICP备2021027222号-1 )

GMT+8, 2024-11-15 10:00 , Processed in 0.677773 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表