分离数据库后导致CPU使用率增加
在多数据库服务器中迁移某个数据库时,为了省时间,我们可能会直接把某个数据库分离,然后直接使用mdf文件在另一台机上再附加此数据库。这么样做的结果会把所有缓存计划清除出缓冲区。导致CPU的使用率会在一段时间内一直剧高不下。
除了分离会导致清除过程缓存,其它的操作像:把数据库设置为在线或离线后、对数据库进行重命名时、试图修改数据库的排序规则时(不管成功与否)、直接删除某个数据库时。其它的没有具体测试,可能还不只这些操作会引起此问题。
为了能观察试验结果,在自己机器上可以对AdventureWorks运行下面的语句(测试环境SQLSERVER2005SP2):

接着可以对其它的任一数据库如Northwind执行上述的分离等任一操作,再查看sys.dm_exec_cached_plans发现刚才的缓存计划已经没有了。为什么SQLSERVER会选择这么做,我现在也没有搞清楚。
不过,通过上面的结果我们在高峰时段应该避免对数据库执行上述操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端