• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Sybase临时数据库tempdb

发布: 2007-7-14 19:36 | 作者: 佚名    | 来源: 网络转载     | 查看: 22次 | 进入软件测试论坛讨论

领测软件测试网

本文中,你将以调整临时库的位置开始,有步骤的完成临时数据库的优化,并在此过程中了解到优化临时数据库和临时表的一些方法和规则。

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

步骤:

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

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

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

diskinit

name="tempdb_dev",

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

vdevno=13,

size=15360

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

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

alterdatabasetempdbontempdb_dev=30

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

sp_dropsegment"default",tempdb,master

sp_dropsegmentlogsegment,tempdb,master

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

selectdbid,name,segmapfromsysusages,sysdevices

wheresysdevices.low<=syusages.size+vstart

andsysdevices.high>;=sysusages.size+vstart-1

anddbid=2

and(status=2orstatus=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;把对临时表的复杂的使用分散到多个批处理或过程中,以便为优化器提供信息。

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

createprocbase_proc 

as

select*into#huge_resultfromauths

select*fromarticle,#huge_resultwherearticle.author_code=

#huge_result.author_codeandsex=”0”

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

1)

createprocbase_proc 

as

select*

into#huge_result

fromauths

execselect_proc

2)

createprocselect_proc 

as

select*fromarticle,#huge_result

wherearticle.author_code=#huge_result.author_codeandsex=”0”

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

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

(  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网