43得票7回答
在生产代码中,SELECT * 有什么好的使用场景?

出于习惯,我在生产代码中从不使用SELECT *(只在临时查询时使用,通常是为了学习对象的模式)。 但是现在我遇到了一个情况,我很想使用它,但如果这样做会感觉有点便宜。 我的用例是在存储过程内部创建一个本地临时表,该表应始终与用于创建它的基础表匹配,无论何时运行存储过程。临时表稍后会被填充,...

41得票2回答
在SQL Server 2016中,Always Encrypted和Transparent Data Encryption有什么区别?

当我写这篇文章时,我仍在等待SQL Server 2016的正式发布,以便我们可以探索其“Always Encrypted”功能的实用性。 我只想知道Always Encrypted与当前可用的SQL Server 2016中的透明数据加密之间的具体区别,以便我们可以为未来的项目做出正确的决...

40得票3回答
SQL Server的“Total Server Memory”消耗在过去几个月中一直停滞不前,而且还有64GB以上的可用内存。

我遇到了一个奇怪的问题,SQL Server 2016标准版64位似乎将自己限制在分配给它的总内存的一半(128GB中的64GB)。 @@VERSION的输出为: Microsoft SQL Server 2016 (SP1-CU7-GDR) (KB4057119) - 13.0.4466...

38得票4回答
蓝色带问号的图标——代表什么意思?

SQL Server实例可访问且似乎正常。 Microsoft SQL Server 2016 (SP1-CU2) (KB4013106) - 13.0.4422.0 (X64) Mar 6 2017 14:18:16 版权所有 (c) Microsoft Corporation 企业版 6...

37得票3回答
为什么一个SELECT查询会引起写操作?

我注意到在运行SQL Server 2016 SP1 CU6的服务器上,有时候一个扩展事件会显示一个SELECT查询导致写入操作。 例如: 执行计划中没有明显的写入原因,比如可能会溢出到TempDB的哈希表、溢出缓存或排序等。 变量分配给MAX类型或自动统计更新也可能导致这种情况,...

37得票2回答
选择插入临时表是否通常比选择插入实际表更快?

我记得在某个地方读到过,向tempdb写入数据比不在tempdb中的实际表要快。这在任何情况下都是真的吗? 我记得它说了一些关于tempdb和将数据存储在内存中的特殊内容。

34得票3回答
varchar(255)或者varchar(256)?

我设计表时应该使用varchar(255)还是varchar(256)?我听说一个字节用于列的长度或存储元数据。 现在这还重要吗? 我在互联网上看到一些帖子,但它们适用于Oracle和MySQL。 我们有Microsoft SQL Server 2016企业版,它如何适用于这个环境? ...

31得票4回答
如何以可扩展的方式使用SQL CLR标量函数模拟HASHBYTES?

作为我们ETL过程的一部分,我们将暂存区的行与报告数据库中的行进行比较,以确定自上次加载数据以来是否有任何列实际发生了变化。 比较是基于表的唯一键和所有其他列的某种哈希值。我们目前使用HASHBYTES函数和SHA2_256算法进行比较,并发现在大型服务器上,如果许多并发工作线程同时调用HA...

29得票1回答
SQL Server 2016相较于早期版本有哪些客观原因值得优先选择?

由于自SQL Server 2005或2008以来,微软更频繁地进行SQL Server版本升级,许多公司发现很难确定何时升级是“必须的!”而何时升级是“好事情”。 在一些早期问题询问为什么要选择较新版本的SQL Server而不是之前的版本的背景下,有哪些客观的技术或业务原因可以考虑将SQ...

29得票5回答
为什么我的SELECT DISTINCT TOP N查询会扫描整个表格?

我遇到了一些由SQL Server查询优化器优化不佳的SELECT DISTINCT TOP N查询。让我们从一个简单的例子开始考虑:一个有一百万行的表,其中包含两个交替的值。我将使用GetNums函数生成数据。 DROP TABLE IF EXISTS X_2_DISTINCT_VALUE...