出于习惯,我在生产代码中从不使用SELECT *(只在临时查询时使用,通常是为了学习对象的模式)。 但是现在我遇到了一个情况,我很想使用它,但如果这样做会感觉有点便宜。 我的用例是在存储过程内部创建一个本地临时表,该表应始终与用于创建它的基础表匹配,无论何时运行存储过程。临时表稍后会被填充,...
当我写这篇文章时,我仍在等待SQL Server 2016的正式发布,以便我们可以探索其“Always Encrypted”功能的实用性。 我只想知道Always Encrypted与当前可用的SQL Server 2016中的透明数据加密之间的具体区别,以便我们可以为未来的项目做出正确的决...
我遇到了一个奇怪的问题,SQL Server 2016标准版64位似乎将自己限制在分配给它的总内存的一半(128GB中的64GB)。 @@VERSION的输出为: Microsoft SQL Server 2016 (SP1-CU7-GDR) (KB4057119) - 13.0.4466...
SQL Server实例可访问且似乎正常。 Microsoft SQL Server 2016 (SP1-CU2) (KB4013106) - 13.0.4422.0 (X64) Mar 6 2017 14:18:16 版权所有 (c) Microsoft Corporation 企业版 6...
我注意到在运行SQL Server 2016 SP1 CU6的服务器上,有时候一个扩展事件会显示一个SELECT查询导致写入操作。 例如: 执行计划中没有明显的写入原因,比如可能会溢出到TempDB的哈希表、溢出缓存或排序等。 变量分配给MAX类型或自动统计更新也可能导致这种情况,...
我记得在某个地方读到过,向tempdb写入数据比不在tempdb中的实际表要快。这在任何情况下都是真的吗? 我记得它说了一些关于tempdb和将数据存储在内存中的特殊内容。
我设计表时应该使用varchar(255)还是varchar(256)?我听说一个字节用于列的长度或存储元数据。 现在这还重要吗? 我在互联网上看到一些帖子,但它们适用于Oracle和MySQL。 我们有Microsoft SQL Server 2016企业版,它如何适用于这个环境? ...
作为我们ETL过程的一部分,我们将暂存区的行与报告数据库中的行进行比较,以确定自上次加载数据以来是否有任何列实际发生了变化。 比较是基于表的唯一键和所有其他列的某种哈希值。我们目前使用HASHBYTES函数和SHA2_256算法进行比较,并发现在大型服务器上,如果许多并发工作线程同时调用HA...
由于自SQL Server 2005或2008以来,微软更频繁地进行SQL Server版本升级,许多公司发现很难确定何时升级是“必须的!”而何时升级是“好事情”。 在一些早期问题询问为什么要选择较新版本的SQL Server而不是之前的版本的背景下,有哪些客观的技术或业务原因可以考虑将SQ...
我遇到了一些由SQL Server查询优化器优化不佳的SELECT DISTINCT TOP N查询。让我们从一个简单的例子开始考虑:一个有一百万行的表,其中包含两个交替的值。我将使用GetNums函数生成数据。 DROP TABLE IF EXISTS X_2_DISTINCT_VALUE...