标签: sql-server

SQL Server 2012 客户端统计信息不正确

当我运行查询时,我得到以下客户端统计结果:-

Number of SELECT statements = 2
Run Code Online (Sandbox Code Playgroud)

正在运行的查询只有 1 个 SELECT 语句:-

SELECT TOP 1000000 * FROM [DATABASE].[SCHEMA].[TABLE]  
Run Code Online (Sandbox Code Playgroud)

我的客户端统计信息在服务器上返回,声称 2 个 SELECT 语句如下所示:-

在此处输入图片说明


在此处输入图片说明

有人可以解释为什么它会显示为 2 个 SELECT 语句吗?

我还使用 SQL Profiler 来跟踪它的运行情况,并且没有第二个查询

sql-server t-sql

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

Logshipping 中的登录问题

我已在主服务器 A 和辅助服务器 B 中配置了日志传送。

一切正常,直到我使备用数据库联机。

用户无法登录辅助 serverB 数据库(位于已联机的辅助服务器上)

谁可以帮我这个事?

sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012

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

JOIN 特定语法的 ON 子句?

我对 JOIN 操作的语法有点好奇,特别是我们设置条件的 ON 子句。假设我们正在对现有表和我们刚刚创建为 JOIN 中的子查询的表执行连接,例如:

SELECT DISTINCT ssn, job, identifier, startdate, enddate, salary, ceasing
FROM oldcontracts
JOIN (SELECT DISTINCT name, identifier FROM jobs)
ON oldcontracts.job = jobs.name
;
Run Code Online (Sandbox Code Playgroud)

这里的问题是,我们将如何设置一个有效的 ON 条件?我这样说是因为语法具有以下形式:

table1.column <condition> table2.column
Run Code Online (Sandbox Code Playgroud)

显然,SQL 2005 对我们从何处获取这些列非常严格。这意味着我在 jobs.name 上收到一个错误,说它不是一个有效的标识符。我假设 SQL 抛出这个错误是因为作业不是在操作中加入的表。

我知道解决这个问题的方法是简单地将作业设置为 table2 以在 JOIN 中使用,并根据需要调整 SELECT,然后一切都会工作,但我很想知道是否有办法解决一列一个子查询,假设该特定子查询是在 JOIN 操作中用作 table2 的那个?

sql-server-2005 join sql-server

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

VMWare VMotion 导致性能提高?

一段时间以来,我们在运行 SQL Server 的虚拟环境中遇到了一些奇怪的问题。

我们从用户那里随机收到关于 SQL 盒性能非常差的电话。果然,当我查看时,我看到 CPU 固定在 100%。我对另一台主机执行 VMotion,一旦它完成移动到另一台主机,性能立即恢复正常。

我一直在与 VMWare 管理员合作,他们向我保证 VMotion 不会影响 SQL Server 上的任何内容。就好像移动到另一台主机会导致执行计划更改等。然而,我不明白为什么 CPU 使用率突然飙升,除非由于参数嗅探而导致重新编译的查询计划很糟糕,但我认为 VMotion 不会解决这个问题,因为它应该是透明的。

VM 场由 19 台戴尔服务器(抱歉,我不知道确切型号)组成,每个服务器有 2 个物理插槽和 12 个内核。

以前有没有其他人观察过这种行为?我想知道这是否与容量有关,因为似乎有一些大型 VM 供主机处理(有 14 个 80GB、12 个核心 VM 浮动)。即使在场中使用这些虚拟机,我也可以在 Vsphere 控制台中看到主机没有被过度使用(内存确实在很多时候爬升到 80% 标记,但没有膨胀)。

此外,这会发生在所有不同版本的 SQL(2008、2008R2、2012 和 2014)上。

非常感谢您的任何见解!

sql-server sql-server-2008-r2 vmware

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

错误 35338:不支持聚集列存储索引

在SQL Server 2012中,我想指数有一个表列存储索引。但是出现错误消息:

消息 35338,级别 16,状态 1,第 1 行
不支持聚集列存储索引。

我的代码是:

CREATE TABLE [dbo].[Card](
    [CardId] [int] IDENTITY(1,1) NOT NULL,
    [CardSerialNumber] [varchar](19) NULL,
    [CreateDate] [datetime] NOT NULL
) ON [PRIMARY]

GO
CREATE CLUSTERED COLUMNSTORE INDEX cci_Simple ON [dbo].[Card]
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012 columnstore

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

我可以从 Windows 在 MS SQL 中创建一个新用户并提供 SID

我正在尝试迁移数据库,并且与数据库一起,我还尝试迁移用户而无需重新映射用户。我试图用旧的服务器 SID 重新创建 Windows 用户。这可能吗?我有一个我一直在尝试使用的代码示例,但 SQL 给了我一个不正确的语法错误。

询问:

USE [master]
GO
CREATE LOGIN [domain\ntuser] FROM WINDOWS 
WITH 
DEFAULT_DATABASE=[master],
SID=0x01000000000000000000000000000000000000000000000000000000;
GO
Run Code Online (Sandbox Code Playgroud)

错误:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near '0x01000000000000000000000000000000000000000000000000000000'.
Run Code Online (Sandbox Code Playgroud)

sql-server migration t-sql users

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

where子句中&amp;的含义是什么

& 在下面的查询中表示什么?它的意义是什么?

select id, name 
from test 
where num & 1 = 1; 
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

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

VLDB - 创建 SQL 数据库快照并运行精细的 DBCC CHECKDB 命令

我有一个 25TB db(SQL2008 Enterprise SP4),它似乎没有在生产中运行 CHECKDB。不知道它是否在某个时候针对恢复的备份运行。现在我没有空间在连接到同一存储的另一台服务器上恢复副本。

我需要能够运行 checkcatalog、checkalloc 和 checktable,但即使对于小表,它似乎也无法创建内部稀疏文件 dbcc 快照。

所以我想知道我是否可以在另一个驱动器上创建一个 SQL 数据库快照,然后针对它运行这些命令,然后在完成后删除快照数据库。

谢谢!

——托德

sql-server-2008 sql-server dbcc-checkdb vldb dbcc-checktable

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

如何选择不同的TOP但按列分组

我有一个 500 行的结果集,但这是 100 张发票。我只需要最后一张发票的前 10 个。

我发现了类似的东西:如何从每个类别中选择前 10 条记录

样本数据:

InvNr | DetailLine
111   |    1       
111   |    2
112   |    1
112   |    2
112   |    3
113   |    1
113   |    2
114   |    1
115   |    1
...   |    ...
Run Code Online (Sandbox Code Playgroud)

我希望得到的是例如:

SELECT DISTINCT TOP 2 InvNr, DetailLine FROM tbl_Invoice
Run Code Online (Sandbox Code Playgroud)

有了这个结果:

InvNr | DetailLine
111   |    1       
111   |    2
112   |    1
112   |    2
112   |    3
Run Code Online (Sandbox Code Playgroud)

更新:
所以我需要他们创建的最后 10 个(或上例中的前 2 个)发票,但每个发票可以有“x”个明细行,我希望结果中的所有明细行(最后 10 …

sql-server sql-server-2008-r2 group-by top

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

从 SQL Server 到 Azure SQL 的事务复制

我正在尝试在本地 SQL Server 和 Azure SQL 数据库之间设置事务复制。不幸的是,Azure SQL 似乎不支持 SQL Server 复制,而 Azure 数据同步似乎已被放弃(即使不支持,它也会在具有 200 多个表的数据库上窒息)。

在本地 SQL Server 和 Azure SQL 数据库之间设置连续事务复制有哪些替代方法?我的目标是只复制少数几个表,我希望它近乎实时地发生(而不是按计划进行)。

replication sql-server azure-sql-database

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