Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。

2
为什么在SQL Server 2012中查询结果为空的错误?
在MS SQL Server 2012中运行以下查询时,第二个查询失败,但第一个查询失败。同样,如果在没有where子句的情况下运行,则两个查询都会失败。我很茫然,为什么两个都失败,因为两个都应该有空结果集。任何帮助/见解表示赞赏。 create table #temp (id int primary key) create table #temp2 (id int) select 1/0 from #temp where id = 1 select 1/0 from #temp2 where id = 1

6
设备上的媒体系列格式不正确。SQL Server无法处理此媒体系列
我正在尝试在SQL Server中还原.BAK,但出现以下错误: 消息3241,级别16,状态7,行1设备'c:\ glyn \ JA.bak'上的媒体系列格式错误。SQL Server无法处理此媒体系列。消息3013,级别16,状态1,第1行RESTORE DATABASE正在异常终止。 我尝试使用2012年,2008年甚至2005年进行还原,但没有任何效果,我使用了以下查询,Tasks >> Back up但通过的结果却无效,这是我的SQL: RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak' 有没有人有什么建议?我读过bak可能已损坏,它是由另一位从事该项目的DVD开发人员发送给我的。

3
HEAP表的有效使用方案是什么?
我目前正在将一些数据导入到旧版系统中,并且发现该系统未使用单个群集索引。快速的Google搜索向我介绍了HEAP表的概念,现在我很好奇在哪种使用情况下,HEAP表比集群表更可取? 据我了解,HEAP表仅对审计表和/或插入比选择频繁发生的地方有用。由于没有要维护的聚簇索引,而且由于非常罕见的读取,因此不会产生额外的碎片,因此,这将节省磁盘空间和磁盘I / O。

3
为了获得绝对性能,SUM是更快还是COUNT?
这涉及对符合特定条件(例如)的记录数进行计数invoice amount > $100。 我倾向于 COUNT(CASE WHEN invoice_amount > 100 THEN 1 END) 但是,这同样有效 SUM(CASE WHEN invoice_amount > 100 THEN 1 ELSE 0 END) 我本来认为COUNT更可取,原因有两个: 传达意图,这是为了 COUNT COUNT 可能涉及i += 1某个地方的简单操作,而SUM不能依靠其表达式作为简单的整数值。 是否有人对特定RDBMS的区别有特定的事实?

6
使用SQL Server进行负载平衡
如今可以在Windows Server上执行Microsoft SQL Server负载平衡并且对任何程序访问都是透明的。这是内置的,还是必须购买解决方案? 我试图找出今天是否有一种解决方案,从Web服务器或其他对SQL Server的数据库访问的角度来看,这使此操作非常容易。
31 sql-server 

5
没有数据更改的UPDATE性能
如果我有一条UPDATE声明实际上并未更改任何数据(因为数据已经处于更新状态)。在WHERE子句中添加检查以阻止更新是否对性能有好处? 例如,在以下情况下,UPDATE 1和UPDATE 2之间的执行速度是否会有所不同: CREATE TABLE MyTable (ID int PRIMARY KEY, Value int); INSERT INTO MyTable (ID, Value) VALUES (1, 1), (2, 2), (3, 3); -- UPDATE 1 UPDATE MyTable SET Value = 2 WHERE ID = 2 AND Value <> 2; SELECT @@ROWCOUNT; -- UPDATE 2 UPDATE MyTable SET …

1
为什么扫描比寻找该谓词要快?
我能够重现我将其描述为意外的查询性能问题。我正在寻找针对内部的答案。 在我的机器上,以下查询执行聚集索引扫描,并花费大约6.8秒的CPU时间: SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'10', N'11', N'12',N'13', N'14', N'15', N'16', N'17', N'18', N'19', N'20' ) AND (ID1 = N'FILLER TEXT' AND ID2 >= N'' OR (ID1 > N'FILLER TEXT')) ORDER BY ID1, …

6
SQL Server与新TLS标准的兼容性
主要的浏览器正在超越SSL3.0和TLS1.0。 PCI安全委员会宣布这些协议的有效期限已被视为足够强大的加密。 我们需要远离这些协议,而使用更新更强大的协议。在Windows服务器上,您可以非常轻松地禁用这些旧协议,而仅提供TLS1.1或更高版本。但是,如其他地方所述,如果禁用了较低版本的协议,则Microsoft SQL Server 2008 R2和SQL Server 2012(至少是Standard)都不会启动。但是,有越来越多的MS SQL Server版本。有SQL Server Standard,Business Intelligence,Enterprise,Express,Web和Compact版本。当然还有SQL Server 2008、2012、2014和(在预发行版本中)2016。 以下哪个版本支持或将仅支持TLS1.1或更高版本的协议?


4
CPU时钟速度与CPU核心数量之间的关系-更高的GHz,还是SQL Server使用更多的核心?
我们开始为VMware中的SQL Server 2016节点的虚拟群集提供一组物理服务器。我们将利用企业版许可证。 我们计划设置6个节点,但是关于在CPU时钟速度与CPU核心数之间提供物理服务器的理想方式尚有争议。 我知道这很大程度上取决于交易量和存储的数据库数量以及其他特定于软件的因素,但是建议使用一般经验法则吗? 例如,双8核3.2 GHz物理服务器(16核)是否比双16核2.6 GHz服务器(32核)更优先? 有谁遇到过进一步研究此类主题的白皮书?

8
IntelliSense不起作用,但已启用
事实证明,这个问题确实很棘手(而且很烦人)。 在SQL Server Management Studio 2008中,直到几天前,我的IntelliSense仍然运行良好。然后突然停了下来。在工具栏菜单上启用的图标,在“工具”->“选项”->“文本编辑器”->“ T-SQL”->“ IntelliSense”下,它表示已在此处启用。 我尝试使用Ctrl-Shft-R刷新IntelliSense缓存,但这也不起作用。 有什么想法可以解决我的IntelliSense以及我需要做些什么才能取回它?


5
为什么将int用作查找表的主键?
我想知道为什么我应该使用int作为查找表的主键,而不是仅使用lookup值作为主键(在大多数情况下为字符串)。 我知道,如果将nvarchar(50)而不是int链接到具有许多记录的表,则会使用更多空间。 另一方面,直接使用查找值基本上可以节省我们进行连接的时间。我可以想象,如果始终需要加入,这将节省很多钱(我们正在开发一个Web应用程序,因此这很重要)。 除了将int主键用作“标准操作”以外,还有什么好处?


4
如何将数据库从SQL Server 2012移动到SQL Server 2005
如果我需要将数据库从SQL Server 2012(32位)移至SQL Server 2005(64位),该怎么办? 我知道我不能: 在SQL Server 2005上还原数据库的备份 分离并附着 我知道我可以: 使用导入数据向导,我在一个数据库上进行了尝试,但是它只能移动数据,即使那样也很麻烦,因为我需要做很多工作来创建临时表来维护标识列,重新创建所有FK,索引等。 有没有更简单的选择?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.