第二步:将临时数据库与高速缓冲进行绑定
由于临时表的创建、使用,临时数据库会频繁地使用数据缓存,所以应为临时数据库创建高速缓存,从而可以使其常驻内存并有助于分散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
说明:在同一个存储过程或批处理中,创建并使用一个表时,查询优化器无法决定这个表的大小。
结论:通过本实验我们知道,临时数据库经过优化可以极大的提高系统性能。实际工作中,必须考虑具体应用的情况,需长时间经验的积累。