AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 31554
Accepted
dance2die
dance2die
Asked: 2009-06-26 05:44:32 +0800 CST2009-06-26 05:44:32 +0800 CST 2009-06-26 05:44:32 +0800 CST

如何查看 DBCC SHRINKFILE 的进度?

  • 772

有没有办法查看DBCC SHRINKFILE语句的进度?

这是我运行它的方式

dbcc 收缩文件('main_data',250000)

我在 SQL Server 2005 和 2008 上都运行上述语句。

[更新] 这是我为检查进度和正在运行的文本而运行的查询。

select  T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id)
        , R.cpu_time, R.total_elapsed_time, R.percent_complete
from    sys.dm_exec_requests R
        cross apply sys.dm_exec_sql_text(R.sql_handle) T
sql-server sql-server-2005 sql-server-2008 shrink
  • 6 6 个回答
  • 90698 Views

6 个回答

  • Voted
  1. Best Answer
    Aaron Alton
    2009-06-26T05:48:56+08:002009-06-26T05:48:56+08:00

    你检查过 sys.dm_exec_requests 中的 percent_complete 吗?

    • 43
  2. Paul Randal
    2009-06-26T07:27:56+08:002009-06-26T07:27:56+08:00

    Aaron 的回答是正确的,但我想提醒您不要运行数据文件收缩,因为它会导致可怕的性能问题。我曾经拥有收缩代码,所以我知道我在说什么。查看我昨天写的这篇博文,它向您展示了我的意思,并建议如何在不实际进行收缩的情况下进行收缩:为什么不应该收缩数据文件

    希望这可以帮助!

    PS 还有一件事要检查它是否需要很长时间并且 percent_complete 没有增加 - 寻找阻塞。Shrink 将无限等待它需要的锁。

    • 19
  3. Mark Varnas
    2017-08-19T12:38:43+08:002017-08-19T12:38:43+08:00

    下面的查询将显示如下结果: track dbcc shrink status

    -------------------------------
    --Track DBCC shrink status
    -------------------------------
    select
    a.session_id
    , command
    , b.text
    , percent_complete
    , done_in_minutes = a.estimated_completion_time / 1000 / 60
    , min_in_progress = DATEDIFF(MI, a.start_time, DATEADD(ms, a.estimated_completion_time, GETDATE() ))
    , a.start_time
    , estimated_completion_time = DATEADD(ms, a.estimated_completion_time, GETDATE() )
    from sys.dm_exec_requests a
    CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b
    where command like '%dbcc%'
    
    • 13
  4. user5947282
    2016-11-16T09:57:30+08:002016-11-16T09:57:30+08:00

    为任何感兴趣的人添加我自己的版本,这会将毫秒时间列转换为更易读的分钟和秒。

    select 
    [status],
    start_time,
    convert(varchar,(total_elapsed_time/(1000))/60) + 'M ' + convert(varchar,(total_elapsed_time/(1000))%60) + 'S' AS [Elapsed],
    convert(varchar,(estimated_completion_time/(1000))/60) + 'M ' + convert(varchar,(estimated_completion_time/(1000))%60) + 'S' as [ETA],
    command,
    [sql_handle],
    database_id,
    connection_id,
    blocking_session_id,
    percent_complete
    from  sys.dm_exec_requests
    where estimated_completion_time > 1
    order by total_elapsed_time desc
    
    • 7
  5. Francisco Figueiredo
    2015-06-17T02:06:30+08:002015-06-17T02:06:30+08:00
    SELECT 
        d.name,
        percent_complete, 
        session_id,
        start_time, 
        status, 
        command, 
        estimated_completion_time, 
        cpu_time, 
        total_elapsed_time
    FROM 
        sys.dm_exec_requests E left join
        sys.databases D on e.database_id = d.database_id
    WHERE
        command in ('DbccFilesCompact','DbccSpaceReclaim')
    
    • 5
  6. darotweiler
    2018-03-08T01:40:04+08:002018-03-08T01:40:04+08:00

    或者您可以只运行 exec sp_who3。

    • -1

相关问题

  • 将管理员用户添加到 SQL Server 2008

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve