zoukankan      html  css  js  c++  java
  • [精华] [转帖]关于tempdb的优化---保证足够的 TempDB 空间

    关于tempdb的优化


      缺省情况下,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”

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

    保证足够的 TempDB 空间

    目录

    如果在处理需要 SQL 服务器处理空间的 Recordset 对象时发生错误,则可能需要增加 TempDB 的大小。(某些查询需要临时处理空间。例如,带 ORDER BY 子句的查询需要一种 Recordset,而这需要部分临时空间。)

    要点   请在执行操作之前阅读该步骤,因为设备对象一旦展开就难以折叠。

    增加 SQL 服务器上的 TempDB 空间

    1. 启动 Microsoft® SQL Server Enterprise Manager,打开“服务器”树,然后打开“数据库设备”树。

    2. 选定要扩展的(物理)设备,如 Master,然后双击该设备打开“编辑数据库设备”对话框。

      该对话框显示当前数据库使用的空间大小。

    3. 在“大小”滚动框中,将设备增加到所需量(例如,50 MB 的硬盘空间)。

    4. 单击“立即更改”增加(逻辑)TempDB 可以扩展的空间大小。

    5. 打开服务器上的“数据库”树,然后双击“TempDB”打开“编辑数据库”对话框。“数据库”选项卡列出当前分配给 TempDB 的空间大小(“数据大小”)。默认情况下是 2 MB。

    6. 在“大小”组下,单击“扩展”。图形显示在每个物理设备上可用的和已分配的空间。栗色的条代表可用的空间。

    7. 选定“日志设备”,例如 Master,在“大小 (MB)”框中显示可用的空间。

    8. 单击“立即扩展”将空间分配给 TempDB 数据库。

      “编辑数据库”对话框显示新分配的 TempDB 大小。

    参阅   关于该主题的详细信息,请参阅 Mcirosoft SQL Server Enterprise Manager 帮助文件中的“扩展数据库对话框”。

  • 相关阅读:
    pgspider sqlite mysql docker 镜像
    pgspider docker 镜像
    pgspider基于pg 的高性能数据可视化sql 集群引擎
    diesel rust orm 框架试用
    golang 条件编译
    Performance Profiling Zeebe
    bazel 学习一 简单java 项目运行
    一个好用node http keeplive agnet
    gox 简单灵活的golang 跨平台编译工具
    mailhog 作为smtp server mock工具
  • 原文地址:https://www.cnblogs.com/runfeng/p/441741.html
Copyright © 2011-2022 走看看