如何找到导致建议创建特定索引的缺失索引 DMV 的查询?
谢谢你。
我正在尝试编写一个用空格替换特殊字符的查询。下面的代码有助于识别行。(字母数字字符、逗号和空格有效):
SELECT columnA
FROM tableA
WHERE columnA like '%[^a-Z0-9, ]%'
Run Code Online (Sandbox Code Playgroud)
如何将替换函数集成到 select 语句中,以便结果集中除字母数字、逗号和空格之外的所有字符都替换为 ' '(空格)。这个不行:
SELECT replace(columnA,'%[^a-Z0-9, ]%',' ')
FROM tableA
WHERE columnA like '%[^a-Z0-9, ]%'
Run Code Online (Sandbox Code Playgroud) 我有一个这样的程序(简化):
CREATE PROCEDURE test @userName VARCHAR(64)
SELECT *
FROM member M
INNER JOIN order O
ON M.MemberId=O.MemberId
WHERE M.Username = @userName
Run Code Online (Sandbox Code Playgroud)
Member 表的 Username 列上有一个非聚集索引。
计划缓存显示隐式转换如下:
查找键[1]:前缀:[MyDatabase].[dbo].[Member].Username = Scalar Operator(CONVERT_IMPLICIT(varchar(64),[@Username],0))
我只是想知道是什么导致了这种隐式转换,因为参数和字段数据类型“UserName”都是 varchar(64)?
像这样从框架调用 SP:
EXEC test @Username=N'webSite.com'
Run Code Online (Sandbox Code Playgroud)
谢谢你。
performance sql-server stored-procedures execution-plan sql-server-2008-r2 query-performance
我在其中一台服务器(SQL Server 2008 R2)上有 tempdb 争用(我猜,至少)。
拦截器和服务员(其中 10 个)在数据库 tempdb 上都具有 PAGELATCH_EX 等待类型,并且所有会话(拦截器和服务员)的等待资源都是“2:1:122”。
我检查了 SQL 代码,发现在大多数会话中都创建了表变量,我怀疑这可能是罪魁祸首。
任何有关如何进一步诊断和缓解此问题的建议表示赞赏。
我知道什么是表扫描、聚集索引扫描和索引查找,但我的谷歌技能让我无法找到非聚集索引扫描的精确解释。为什么以及何时查询使用非聚集索引扫描?
谢谢你。
index sql-server-2008 sql-server sql-server-2008-r2 nonclustered-index
我在 SQL Server 2008 R2 上有一个包含 5 个 .ndf(辅助)数据文件的数据库。(这些数据文件中的每一个都被分配到一个单独的文件组。)我想知道这些文件中有哪些数据。是否可以?我知道这些文件组中有全文索引(并且由于每个文件组只有一个文件,因此创建这么多文件的唯一目的可能是将全文索引放在不同的文件组中,我不知道)。我想确保除了全文索引之外没有其他数据。
谢谢
我们使用的是 SQL Server 2008 R2 标准版。一些表高度分散。我想看看碎片整理是否会提高性能,是否值得在此过程中锁定表/索引。因此,我想在测试环境中恢复完整备份并模拟实时环境。
遵循的最佳方式是什么?我怎样才能捕捉到某个时间段内在现场环境中发生的事件?有哪些工具可用于此目的?
谢谢
我有一个每晚运行的预定工作。无论是否完成,我都希望它在早上 07:00 自行停止。
我在网站上看到了一些重复内容,但它们并没有完全解决问题。谢谢。
sql-server-2008 sql-server sql-server-2008-r2 sql-server-agent
如何清除丢失的索引 DMV,例如dm_db_missing_index_group_stats,dm_db_missing_index_groups和dm_db_missing_index_details?
我无法选择重新启动服务器或先将其脱机,然后再重新联机,因为它是生产环境。
sql-server-2008 sql-server sql-server-2008-r2 dmv index-tuning
我遇到了高信号等待百分比,而我们的一台服务器的 CPU 利用率非常低。
我在网上阅读了许多关于 Signal Waits 的文章,并了解它是在可运行队列上花费的时间,但是我仍然很难理解为什么 CPU 使用率保持如此低 (25%) 而 Signal Waits 的百分比很高(75-90% 的范围。)
如果会话正在等待可用的 CPU 来运行它,为什么 CPU 利用率如此之低?
sql-server ×10
dmv ×2
index ×2
wait-types ×2
blocking ×1
datafile ×1
filegroups ×1
files ×1
index-tuning ×1
performance ×1
replace ×1
t-sql ×1
tempdb ×1
waits ×1