小编O.O*_*O.O的帖子

盲目添加缺失的索引可以吗?

我经常使用 SSMS 来测试我的慢速存储过程是否缺少索引。每当我看到“缺少索引(影响 xxx)”时,我的下意识反应就是创建新索引。据我所知,这每次都会导致更快的查询。

为什么我不应该继续这样做?

index sql-server-2008 sql-server ssms

21
推荐指数
2
解决办法
4524
查看次数

如何获得准确的查询性能?

我正在尝试提高存储过程的性能。当我运行 SP 时,它几乎立即完成,就像缓存了某些东西一样。我被告知在 SSMS 中执行 SP 之前使用以下两行 SQL:

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
Run Code Online (Sandbox Code Playgroud)

当我使用上面的两行代码运行 SP 时,SP 在大约 8 秒内完成。但是,这真的给了我真正的执行时间(就像我从应用程序运行它一样)?我怎么知道?

performance sql-server-2008 ssms query-performance

9
推荐指数
1
解决办法
2004
查看次数

何时向#temp 表添加索引?

在 SSMS 中测试存储过程时,有时会说#someTempTable____________________000000000000005B] (someField)etc上缺少索引

当我像这样将它们添加到 sp 时:

CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[#someTable] ([someField])
GO
Run Code Online (Sandbox Code Playgroud)

我似乎从未看到速度提高。所以,我经常不添加这样的索引。我应该什么时候添加这样的索引?

index sql-server-2008 ssms

8
推荐指数
2
解决办法
2万
查看次数

为什么@temp 表性能有时比#temp 表性能差?

我最近在一个非常慢的存储过程中工作(运行需要 5 分钟)。我做了一个非常小的调整:

declare @tempTable table
(
  ...
)
insert into @tempTable
select .....
Run Code Online (Sandbox Code Playgroud)

select ... into #tempTable from someTable
Run Code Online (Sandbox Code Playgroud)

然后脚本在大约 2 秒内运行。什么可以解释这个时差?

sql-server-2008 temporary-tables

6
推荐指数
1
解决办法
1569
查看次数

为什么恢复需要很长时间?

虽然数据库备份文件只有 2GB,但即使在 x64 12G RAM、i7 机器上,恢复也可能需要 15-20 分钟。当我备份从不同数据库制作的类似大小的备份文件时,恢复会在 3 秒内完成。备份文件只包含一个备份集(我总是检查覆盖现有数据选项)。在其他较慢的机器上,恢复需要更长的时间。

什么可能导致恢复需要这么长时间?

sql-server-2008 restore

5
推荐指数
1
解决办法
2万
查看次数