我今天有一个由其他人创建的 .bak 文件,通过 SSMS 2008 R2 手动创建。我正在尝试手动恢复数据库,不幸的是,当我浏览它时该文件没有出现。
我可以编写恢复过程的脚本,但我以前见过这个问题,我不确定是什么原因导致 .bak 不出现。
我在 Windows Server 2008 机器上运行 SQL Server 2008 R2 SP1。我有一个从 Visual Studio 2010 运行的 .NET 脚本,它执行以下操作:
它将迭代的总次数为 150,但是它在 100 个连接处停止,我不知道为什么。我可以调整我的脚本以仅使用单个线程,但我更想知道我在哪里缺少最大连接设置,因为这对于将来参考会更有用。
这是我到目前为止检查过的地方:
SP_WHO2其中提供了有关逻辑连接的更多信息,看到连接数从 52 开始,脚本错误与“达到最大池连接数”错误在 152 个逻辑连接处。Data Source=PerfSQL02;Initial Catalog=Masked;Integrated Security=True;Max Pool Size=1000我不知道还有哪里可以检查,我知道我这里有很多活动部件,但我感觉我只是在某处缺少最大池设置。
目前,DBCC FREEPROCCACHE当我想在运行 SQL 查询之间从缓冲池中清除信息时,我会运行。但是,我正在查看这篇Technet 文章,其中引用了DBCC FREESYSTEMCACHE. 哪些缓存会FREESYSTEMCACHE擦除而FREEPROCCACHE不会?
我一直在对压缩和存储 SQL Server 备份的不同方法进行一些测试(使用 SQL Server 2008 R2 企业版),我想知道最有效的压缩算法是在 SQL 之外长期存储这些备份内部压缩算法。
我不担心物理存储或磁带驱动器或任何东西,只是试图将我们的 3TB 数据和日志文件变成最小的单个文件。
那么,例如,是 .zip 还是 .7z?或者我的数据库中有太多变量无法准确估计什么是最有效的,而我只需要做一些测试?或者 SQL Server 的内部压缩是我能得到的最好的吗?
我正在 SQL Server 2008 R2 SP1 上设置生产数据库的开发副本。目前,两个开发人员很少使用实时数据库进行只读查询,但新数据库也会对其进行更新。
由于数据库是 2.1TB,总共需要 3 天时间来恢复和更新到我们测试所需的最新版本,我最初的计划是创建一组新的备份文件,然后从这些文件中恢复。这将允许我在同一 SQL 实例和机器上创建数据库的开发副本,而不必使当前数据库脱机。
但是,为了节省这几天的时间,我认为只复制物理数据库文件并附加数据库的新副本可能是个好主意。不幸的是,当我尝试复制时,我收到一个错误,指的是 SQL Server 对这些文件的锁定。
由于除了传输日志文件之外我无法将数据库脱机(我可以在人们早上进入之前完成此操作),有什么方法可以复制实时数据库文件而不将数据库置于脱机状态?还是应该等到人们回家后再做?
我有一个 2.8TB 的 SQL 数据库(主要是数据文件,大约 400GB 的日志文件),目前需要大约 9 个小时才能恢复。该数据库用于测试目的,必须在每次运行之间从备份中删除和恢复,以确保我们始终从同一点开始。
我的问题是,服务器目前有 12 个内核和 92GB 的 RAM,以及数据库所在的 RAID 5 磁盘子系统。哪些方面通常会导致 SQL 还原过程出现瓶颈?是磁盘、内存还是CPU?
我有一组大约 30 个表,我想知道所有这些表(加上索引)在磁盘上的物理大小。
是否有比通过 SQL Server 2008 R2 中的 GUI 更简单的方法?
我熟悉索引碎片的概念以及如何修复它,但我不确定某个特定项目。
当您查看索引碎片时,它总是以Percentage报告。
当系统不受 CPU 限制并且 95% 的响应看到响应时间减少时,我试图找出导致某些响应时间增加的原因,当数据通过页面压缩进行压缩时。
因此,我所做的是将其追踪到系统中发生的单个进程,并对该进程进行概要分析以确定在此过程中触发了哪些 SP 和 UFN。我最初的想法是我可以单独运行每个 SP 和 UFN 并查看查询计划以查看发生完整扫描的位置,这可能需要从压缩中解压缩数据并可能导致等待触发。
所以我现在拥有的是:
由于我必须对 35 个 SP/UFN 之类的东西进行分类,因此我想知道缩小原因的最有效方法是什么。根据我对系统的经验,我可以推断出某些 SP 比其他 SP 更有可能是罪魁祸首,但我想尝试以更科学的方式缩小范围。是否有任何工具或方法可以帮助我找出最有可能的罪犯?
如果我可以确定压缩时比不压缩时慢的对象,这将有助于我们了解页面压缩的策略。
我正在负载测试环境中收集等待类型,第二大等待类型是QDS_SHUTDOWN_QUEUE. 统计数据来自 sys.dm_os_wait_stats,但我找不到任何解释该特定类型含义的文档。
我在物理 Windows 2008 R2 实例(不涉及 VM)上运行 SQL Server 2014 SP1。
我在 SQL Server 2008 R2 中工作并创建了一个查询,用于收集和汇总数据文件和日志文件的大小。但是,我无法找到单个 SQL 数据块在磁盘上占用多少实际磁盘空间,因此我可以将其转换为更有意义的内容。
这是脚本:
DECLARE @DataSize INT
DECLARE @LogSize INT
SELECT @DataSize = SUM(size) from sys.database_files where type_desc = 'Rows'
SELECT @LogSize = SUM(size) from sys.database_files where type_desc = 'Log'
PRINT @DataSize
PRINT @LogSize
Run Code Online (Sandbox Code Playgroud)
一格空间有多大?将这两个整数变量转换为对系统管理员更有意义的变量是否容易?
有时我们的开发人员会编写一个使用游标的查询,但不会明确地关闭它们。我正在尝试在我的生产数据库中生成一个活动对象列表,这些对象使用游标但没有明确关闭/取消分配它们。为此,我编写了一个简单的语句来完成这项工作,但速度非常慢:
select distinct name,
definition
from SYS.SQL_MODULES
inner join SYS.OBJECTS O
on SQL_MODULES.OBJECT_ID = O.OBJECT_ID
where SQL_MODULES.DEFINITION like '%open%'
and SQL_MODULES.DEFINITION like '%declare % cursor%'
and ( SQL_MODULES.DEFINITION not like '%close%'
or SQL_MODULES.DEFINITION not like '%deallocate%' )
Run Code Online (Sandbox Code Playgroud)
目前,这需要大约 3 分钟才能运行。有没有更好的方法来获取我正在寻找的信息?
我在一台服务器上安装了 2 个 SQL Server 实例:SQL002。
一个实例是默认实例,SQL2008 R2,SQL服务一般不运行,除了特定的测试。
另一个实例是一个命名实例,SQL 2014(所以 SQL002/SQL2014)。这通常一直在运行。
今天我刚刚有一个开发人员告诉我,当他们在 SQL Server Management Studio 中连接到 SQL002 时,它会成功连接。我从我的机器上复制了这个,也看到了一个成功的连接,但是当我查看连接的属性时,它报告它连接到命名实例。
这里发生了什么?是否有我不知道的重定向?
sql-server ×12
backup ×2
compression ×2
cache ×1
disk-space ×1
index ×1
performance ×1
ssms ×1
wait-types ×1