免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4629 | 回复: 2
打印 上一主题 下一主题

[转帖]关于tempdb的优化 。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-12-30 20:43 |只看该作者 |倒序浏览

  缺省情况下,tempdb数据库是放置在master设备上,容量为2M,而临时数据库是活动最为平凡的数据库常常被用来排序、创建临时表、重格式化等操作,所以tempdb的优化应该受到特别的关注。

  第一步:将临时数据库与高速缓冲进行绑定。
  由于临时表的创建、使用,临时数据库会频繁地使用数据缓存,所以应为临时数据库创建高速缓存,从而可以使其常驻内存并有助于分散I/O:
  1、创建命名高速缓存
    sp_cacheconfig “tempdb_cache”,”10m”,”mixed”
  2、重新启动server
  3、捆绑临时数据库到tempdb_cache高速缓存
    sp_bindcache “tempdb_cache”, tempdb
  4、若有大的I/O,配置内存池

  第二步:优化临时表
  大多数临时表的使用是简单的,很少需要优化。但需要对临时表进行复杂的访问则、
  应通过使用多个过程或批处理来把表的创建和索引分开。以下两种技术可以改善临时表的优化
  1、在临时表上创建索引
    1)临时表必须存在
    2)统计页必须存在(即不能在空表上创建索引)
  2、把对临时表的复杂的使用分散到多个批处理或过程中,以便为优化器提供信息
    下面的这个过程需要进行优化:
     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”

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

论坛徽章:
0
2 [报告]
发表于 2002-12-31 17:33 |只看该作者

[转帖]关于tempdb的优化 。

好,我正找这个呢

论坛徽章:
0
3 [报告]
发表于 2003-01-04 04:01 |只看该作者

[转帖]关于tempdb的优化 。

感激不尽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP