可用于在 mssql 2008 中查找缺失索引的工具?我们可以使用数据库引擎优化顾问找到丢失的索引吗
我有一个乱序的列(通常,不是在 select 语句方面),我只是不知道它是如何变成那样的。
我一直在研究这个很长一段时间,结果是空的。我也无法在测试中重现它。
我已经通知开发人员,他们不允许运行未明确命名列的查询,正是出于这个原因。
然而,与此同时,我不知道我们是如何走到这种地步的,这让我很抓狂。
这里有点令人头疼。
我有一个数据少于 1GB 的数据库,但有一个 40GB 的日志文件。事务日志每天备份,这个数据库没有很多活动;大约每周一次,它记录新的工资单信息,然后为报告目的反刍这些数据。数据库设置为自动收缩。
运行sp_spaceused @updateusage = true产生以下信息:
database_name database_size unallocated space
PayrollImports 39412.06 MB 105.00 MB
reserved data index_size unused
321728 KB 278640 KB 42816 KB 272 KB
Run Code Online (Sandbox Code Playgroud)
运行DBCC shrinkfile (N'PayrollImports_log', 1 , notruncate)产生以下结果:
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
19 2 4991088 3456 4991088 3456
Run Code Online (Sandbox Code Playgroud)
...之间的差异UsedPages和EstimatedPages被神秘,但我继续DBCC shrinkfile (N'PayrollImports_log', 1 , truncateonly),并得到:
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
19 2 4991088 3456 4991088 3456
Run Code Online (Sandbox Code Playgroud)
在这一点上没有任何改变。日志文件仍然是 40GB。所以我想,也许我有一些公开的交易。运行dbcc …
何时使用透明数据加密对 tempdb 进行加密?什么配置等导致 tempdb 以这种方式加密?
与内与
还行吧
WITH CS AS (
SELECT 'ab' as a
)
SELECT * from cs
Run Code Online (Sandbox Code Playgroud)
http://data.stackexchange.com/mathematics/revision/138658/170321/comment-partition-by-question
但是,一旦我用第二个包裹它with,
with PS as (
WITH CS AS (
SELECT 'ab' as a
)
SELECT * from cs
) select * from PS
Run Code Online (Sandbox Code Playgroud)
我收到这个错误,
Incorrect syntax near the keyword 'WITH'. Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon. …
在 SQL Server Management Studio 中,是否有任何方法(例如 SQLCMD 命令或其他东西)让 SQL 脚本窗口在查询执行完成后立即自动断开连接?
我的笔记本电脑上安装了 SSMS 2012,主机上安装了 SQL Server 2012,但是当我尝试安排 sql 作业时,我没有在左侧列表中找到“SQL Server 代理”!!?
我们有一个带有 15 个数据库的 SQL Server。这被每个数据库中的许多用户同时使用。最近,我们开始从该服务器收到高 CPU 警报。当警报出现时,我可以跟踪到确切的用户和查询。
我们无法在此服务器上打开 SQL Server Profiler。我想知道我们是否可以使用任何脚本获取有关在任何数据库(导致高 CPU)中运行的历史昂贵查询的信息。例如 - 我需要过去 4 小时内最昂贵的查询以及数据库名称和用户名。
我们有一个包含以下列的 PriceCombo 表:id(非空)、a_id(空)、b_id(空)、c_id(空)、折扣(非空)。我们正在使用此表来确定分配各种商品组合的价格。
a_id = id of region
b_id = id of merchandize category
c_id = id of customer category
Run Code Online (Sandbox Code Playgroud)
所以基本上,我们总是知道 a、b 和 c,但我们有一个灵活的折扣方案,这样每笔销售都按照我们能找到的最具体的规则进行折扣。
我们的问题是我们无法防止数据库中的重复,例如,我们希望防止在 a_id、b_id 和 c_id 中具有相同值的两行
a_id=1, b_id=1, c_id=1 and
a_id=1, b_id=1, c_id=1
Run Code Online (Sandbox Code Playgroud)
不被允许和
a_id=1, b_id=1, c_id=null and
a_id=1, b_id=1, c_id=null
Run Code Online (Sandbox Code Playgroud)
不被允许,但
a_id=1, b_id=1, c_id=null and
a_id=1, b_id=null, c_id=null
Run Code Online (Sandbox Code Playgroud)
是允许的,因为这些在这 3 列方面不相同。
我在任何地方都没有找到关于如何创建唯一约束的答案,该约束既跨越多列又允许空值但不允许“相同”(至少在约束中指定的列方面)行
我有一台带有以下内容的 SQL Server 机器:
我将最大服务器内存使用量设置为我认为可接受的值(合计约 10GB,为 Windows 留出 2GB)。我使用以下查询来显示缓冲池和非缓冲池的总 RAM 使用量。我还展示了 MAX SERVER MEMORY 设置。每个实例上的数据库都比分配的 RAM 大得多,即使有几个实例比其他实例得到了更多的使用。实际使用的内存不应该总是非常接近 MAX SERVER MEMORY 设置吗?我发现了一个让我好奇的差距。
DECLARE @TotalRam as decimal (10,2)
--NON-BUFFER POOL
SET @TotalRam = (SELECT sum(pages_allocated_count)/128.0 [Non-Buffer (MB)]
from sys.dm_os_memory_cache_entries
where pages_allocated_count > 0)
--BUFFER POOL
SET @TotalRam = @TotalRam + (
SELECT CAST(COUNT(*) * 8/1024.0 AS DECIMAL (10,2)) AS [Buffer Pool …Run Code Online (Sandbox Code Playgroud) sql-server ×10
ssms ×2
constraint ×1
encryption ×1
index ×1
maintenance ×1
memory ×1
profiler ×1
tempdb ×1