当我必须在新服务器上安装 SQL Server (2005/2008) 时,我必须考虑哪些事项?
在这个过程中,有哪些常见的错误?
我安装了 SQL 2005 并且我的 templog.ldf 文件不断增长以消耗它所在驱动器上的所有可用空间。有时它会在有几 mb 免费时停止,但有时它会更进一步,这是 c 驱动器,我认为这种行为可能与我看到的其他一些问题有关。
我的问题是,我应该怎么做,我可以将日志移动到另一个驱动器,但我有理由假设它不会在那里做同样的事情。我假设这种行为很可能是我可以更改的结果,并且对于 tempdb 日志来说,45gb 是一个不寻常的大小。我们在代码中确实使用了很多临时表和表值函数,因此有足够的空间使用 tempdb,我可以理解 tempdb 数据库的增长,但不了解 templog 增长的原因。
到目前为止,我已经运行 DBCC OPENTRAN('tempdb') 来查看是否有任何旧事务存在,它们没有。我已经阅读了有关如何缩小 tempdb 的内容,并且已经这样做了几次,但我真的很想知道我能做些什么来首先阻止这种情况的发生,或者更多关于为什么它可能会增长如此之多的详细信息第一名。
==编辑==
1) tempdb 使用简单恢复模式
2)临时日志的增长发生在早上几个小时,当时我们有一些预定的查询正在运行,基本上是大量报告,这些报告在前一天的办公时间用完。文件的大小在这段时间内稳步增长。我们控制同时运行的并发报告数量,增加并发报告的数量会增加日志增长的速度。
我们正在开发的系统由一个 Web 应用程序前端和一个使用 SQL Server 2008 R2 中的存储过程进行大量数据处理的后端组成(请不要问为什么...)。这些存储过程大量使用临时表(创建、插入、连接),因此tempdb 的I/O 率在写入和读取中很高。我们的客户需要速度,因此我们将推荐以下内容:
一些上下文数据:
我们已经在具有大量内存的笔记本电脑中测试了 ramdisk 方法。至少,加速是显着的(存储过程执行时间减少到 1/3)。
我需要帮助来确定这是否是一个好的解决方案,并检测我可能遗漏的任何缺陷(明显的或不太明显的)。
编辑:感谢您到目前为止的答案!我忘了明确提到将有并发用户使用该应用程序,因此将有多个临时表操作正在运行。此外,混合 Web 服务器和数据库服务器不是我们的选择,我们已经知道这不是最佳的 ;)