标签: sql-server-2014

未为 Always On AG 添加或配置用户数据库

我需要一个查询来获取未为 SQL Server 2014 中的 Always On 可用性组添加或配置的用户数据库。

sql-server availability-groups sql-server-2014

-1
推荐指数
1
解决办法
2835
查看次数

拒绝所有用户访问数据库,但 sa/admin

如何拒绝除 sa BY CODE 之外的所有用户访问数据库?我知道如何使用 management studio 中的界面来做到这一点,但我需要在脚本中使用它。

sql-server sql-server-2014

-2
推荐指数
1
解决办法
3715
查看次数

编写 spaceused 存储过程的脚本来编辑它

是否可以编写sp_spaceused存储过程的脚本,以便我可以编辑它以包含日志空间信息并创建我自己的自定义存储过程?

我想将结果放在一个临时表中,以便我可以在我正在处理的项目中使用它,因此我还需要将 2 个结果集压缩为一个结果集。

不知道从哪里开始。有没有更简单的方法来获取相同的数据?

sql-server sql-server-2014

-2
推荐指数
1
解决办法
135
查看次数

使用 *BOTH* 堆和聚集索引修复 SQL 表

不知何故,我们有一个 SQL Server 表,表上既有HEAP 索引,也有 CLUSTERED 索引。有没有办法来解决这个问题?例如,通过对象 ID 删除 HEAP 索引?

如果我们删除聚集索引,它将创建第二个 HEAP,当重新创建聚集索引时,它将被删除。这个僵尸 HEAP 索引将保留。

在此处输入图片说明

sql-server clustered-index heap sql-server-2014

-3
推荐指数
1
解决办法
461
查看次数

缓慢地运行一个总是运行得很快的查询

我有两个表,99% 的操作都是简单的选择。我们很少有插入/删除和更新。

这些表上有一个内连接,查询的执行计划是索引查找。99% 的情况下,查询运行得非常快(大约 1 秒)。但有时查询需要 30 秒才能运行。

没有任何模式表明这件事发生的时间。有一次这种情况发生在“12 月 1 日凌晨 3:17:20”。一次是“12 月 8 日晚上 10:13:43”。有一次发生在“12 月 11 日下午 16:50:43”。

我怎样才能找到这个问题从何而来的线索?

SQL Server 是否有记录所有事件的工具?

我的查询只有简单的 where 子句:where id = @id

sql-server sql-server-2014

-3
推荐指数
1
解决办法
670
查看次数

为什么这个查询需要超过 1.3TB 的内存,它应该没有内存授权?

SQL Server 版本是 2014 Developer SP1。跟踪标志272, 610, 1118, 1206, 1222, 8048, 9481是全局打开的。

我们不得不打开标志 9481,因为新的基数估计器严重影响了许多查询计划。查询没有排序、散列或并行。当我运行查询时,几分钟内没有返回结果。

在执行期间,sys.dm_exec_query_memory_grants dmv 还报告了超过 1.3TB 的理想内存。(WhyGiganticDesiredMemory.queryanalysis)

我运行了一个非常相似的查询。在 ActualPlan.queryanalysis 中所需的内存为 124GB,授予为 44GB,而在 ActualPlanWithLessMemoryGrant.queryanalysis 中所需的内存仅为 10MB。

它们之间的唯一区别是从后者中删除的嵌套循环下方的最左侧索引查找(我在连接条件中添加了一个无效过滤器 1 = 0 以从计划中删除该表)。

我的查询如下所示:

SELECT  CAST('C' AS CHAR(1)) AS [Action]
      , f.LoadId
      , u.UnvPclId
      , p.*    --- [about 480 columns, Daniel Hutmacher's edit]
FROM    [tExtract].[ExtractCounty] f
INNER JOIN [tControl].[VersionControl] vc ON Id = 1
INNER JOIN [tTax].[Property] pk WITH ( NOLOCK, FORCESEEK ( UpdateVersion_CntyCd ( UpdateVersion ) ) ) …
Run Code Online (Sandbox Code Playgroud)

performance sql-server memory sql-server-2014 query-performance

-4
推荐指数
2
解决办法
510
查看次数

sql 数据库中的数据大小可以小于索引大小吗?

SQL Server 表上的索引是否可以比表本身消耗更多的磁盘空间?

我已经阅读了几篇文章并研究了这个和一些专家推荐的表分区,例如,这个 MSDN 论坛问题

为什么和索引可以比实际数据更大?

如何减小索引大小?

在这种情况下如何识别不必要的索引?

index sql-server partitioning sql-server-2014

-4
推荐指数
1
解决办法
1617
查看次数

SQL Server - 选择怎么会这么慢

我想知道像下面这样的简单查询在一个只有 300 000 行的表上花费 6-7 秒是否正常。我正在研究 SQL Server 2014,而 RDBMS 需要花费大量时间来返回“没有那么多”数据,这让我感到非常惊讶。

SELECT [Id]
  ,[b]
  ,[c]
  ,[d]
  ,[e]
  ,[f]
  ,[g]
  ,[h]
  ,[i]
  ,[j]
  ,[k]
  ,[l]
  ,[m]
  ,[n]
  ,[o]
  ,[p]
  ,[q]
  ,[r]
  ,[s]
  ,[t]
  ,[u]
  ,[v]
  ,[w]
  ,[x]
  ,[y]
  ,[z]
  ,[aa]
  ,[ab]
  ,[ac] FROM .[dbo].[MyTable]
Run Code Online (Sandbox Code Playgroud)

以下是表格说明:

CREATE TABLE MyTable(
Id [int] IDENTITY(1,1) NOT NULL,
b [nvarchar](50) NULL,
c [nvarchar](30) NULL,
d [int] NOT NULL,
e [nvarchar](350) NULL,
f [nvarchar](350) NULL,
g [int] NULL,
h [int] NULL,
i [int] NULL,
j [int] NOT …
Run Code Online (Sandbox Code Playgroud)

performance sql-server select sql-server-2014 query-performance

-7
推荐指数
1
解决办法
3868
查看次数