标签: sql-server-2016

SQL Server 2016 SP1 中的表分区

任何人都可以验证/总结 SQL Server 2016 的 SP1 现在是否在标准版版本中提供表分区?它过去一直是企业版的功能。我在一些博客上看到过这个,但这是真的吗?

谢谢你,马克斯

service-pack sql-server-2016

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

对于基本可用性组中的每个数据库,我是否需要每个子网的单独 IP 地址?

我有一对在两个不同子网中运行的 SQL Server(在 AWS 中,如果重要的话)和几个我想在基本可用性组中运行的数据库。

我的理解是,在 SQL Server 2016 Standard 中,每个数据库都需要一个单独的可用性组。此外,至少在用户界面中,AG 侦听器似乎只能属于单个可用性组。

当我尝试为另一个 AG 侦听器重用 IP 地址时出现错误(即,将 10.0.0.1 和 10.0.1.1 用于 AG 侦听器 LISTENER1 和 LISTENER2)

我真的需要为每个 AG 以及每个数据库创建一个具有两个唯一 IP 地址的单独 AG 侦听器,还是有办法重用 IP 地址或 AG 侦听器?

sql-server availability-groups sql-server-2016

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

大型数据库的 SQL Server 2016 就地升级时间

是否有关于在具有 1000 多个数据库和 10TB 存储空间的服务器上将 SQL Server 2014 升级到 SQL Server 2016 需要多长时间的统计数据?安装后续 2016 服务包需要多长时间?有没有办法通过配置来优化这些安装时间?

目标是最小化维护窗口

更新:让我澄清一个问题。所有生产更新都将在 QA 环境中进行测试,问题不在于这一切。我问的是已知的优化升级持续时间的选项。我将通过测量我环境中的升级时间来自己搜索这些选项,但如果有“以前的艺术” - 请分享。

sql-server upgrade sql-server-2016

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

SQL AES_256 加密和解密

我有一个奇怪的加密和解密问题。加密在 SQL 2008 R2 中运行良好,我们使用的是 TRIPLE_DES_3KEY。这在 SQL 2016 中已被弃用,因此我们正在测试 AES_256。我的原始字符串不断被切断,不确定它在做什么或如何解释。我确定我错过了一些东西,但不确定是什么。详情如下。谢谢!

我的对称密钥:

CREATE SYMMETRIC KEY SK03  
WITH  
    ALGORITHM = AES_256  
    ENCRYPTION BY PASSWORD = 'ThisIsMyAES_256EncryptionTest';  
Run Code Online (Sandbox Code Playgroud)

我的表:

CREATE TABLE [dbo].[_EncryptionTest](  
    [OriginalValue] [varchar](max) NULL,  
    [Encryptedvalue] [varbinary](8000) NULL  
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我的存储过程:

CREATE PROCEDURE [dbo].[_usp_EncryptionTest]  
    @InputString varchar(MAX),  
    @InputString2 varchar(MAX)  

AS  
BEGIN  
    SET NOCOUNT ON;  

    OPEN SYMMETRIC KEY SK03 DECRYPTION BY PASSWORD='ThisIsMyAES_256EncryptionTest'  

    INSERT INTO _EncryptionTest
        (OriginalValue, Encryptedvalue)
    VALUES (
        @InputString
        ,ENCRYPTBYKEY(Key_GUID('SK03'), CONVERT(VARBINARY,@InputString2))
        )

    CLOSE SYMMETRIC KEY SK03;

END  
Run Code Online (Sandbox Code Playgroud)

我的测试 SQL:

EXEC _usp_EncryptionTest 'Spring …
Run Code Online (Sandbox Code Playgroud)

security encryption sql-server-2016

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

SQL Server 2016 - 参数嗅探关闭 - 仍然看到重新编译提高性能的地方

我们使用的是 SQL Server 2016 并关闭了参数嗅探,因为它有时会导致严重的性能问题。我看到一些存储过程在 30 秒内运行,当它们重新编译时,它们在 2 秒内运行。这似乎与我们在参数嗅探中看到的行为非常相似。任何想法为什么这仍然发生?

账单

sql-server-2016

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

使用聚集列存储索引向表添加新列

我有一个FactsTable1包含 240 列的每日事实表 ' ',我正在其中探索 ' Clustured Columnstore Index'(CCI)。

我想知道,

  • 当我向表中再添加约 50 列时会发生什么?
  • 他们会自动添加到 CCI 吗?或者我必须再次重建CCI?
  • 处理这种情况的最佳方法应该是什么?
  • 如果我必须重建索引以使新列成为 CCI 的一部分,那么如果我不重建会发生什么?它将如何影响我的查询性能?

附加信息 :

  • FactsTable1 包含 400000+ 行和 240 列
  • 它在日期列上分区
  • 它对分析数据的查询量很大。
  • @@版本:Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64)

sql-server columnstore sql-server-2016

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

POS 性能问题 AX 2012 R3

我有迟钝。

任何人都可以查看此计划(PasteThePlan) 并告诉我需要优化的内容吗?这是实际的计划

这是从应用程序获取客户信息的过程的一部分。在跟踪中我发现查询需要很长时间。大约需要 14 秒,而在另一个 POS 中则不到 1 秒。

我使用的是 SQL Server 2016 - Express Edition

performance sql-server sql-server-2016 microsoft-dynamics query-performance

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

如果在更新或删除之前存在?

  1. 在写更新语句之前,我应该检查它是否存在吗?

    有人告诉我这样做

    1. 所以它避免了无用的写入事务日志中已经存在的值,

    2. 并且只需要一个允许其他读取的共享锁而不是一个排他锁。
      他们说想象一个事务像这样针对不同的值多次运行,你会一直使用排他锁而不是共享锁。

    3. 同事提到,看锁兼容性图表,搜索时不能有两个更新锁,但可以有两个共享锁。因此,当“搜索要更新的行”没有要更新的值时,假更新锁可以阻止真正的更新。有人可以使此声明无效吗?

      if not exists 
      (
          select FavoriteColor 
          from dbo.Person 
          where Name = 'Bob' 
          and FavoriteColor = 'Green'
      )
      update dbo.Person
      set FavoriteColor = 'Green'
      where Name = 'Bob'
      
      Run Code Online (Sandbox Code Playgroud)
  2. 同样的问题,除了现在删除,我应该检查它是否存在吗?

    if exists 
    (
        select FavoriteColor 
        from dbo.Person 
        where Name = 'Bob' 
        and FavoriteColor = 'Green'
    )
    delete dbo.Person
    where Name = 'Bob' and FavoriteColor = 'Green'
    
    Run Code Online (Sandbox Code Playgroud)

我们使用 SQL Server 2016。

sql-server delete ddl update sql-server-2016

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

一个“更快”的服务器比另一个慢

我有 2 个虚拟机:

  • VM1 - 8 核 32GB 内存

  • VM2 - 8 核 64GB 内存

我使用 SSIS 目录在两个 VM 上同时运行相同的进程,所有进程都在它自己的 VM 上执行,因此没有信息通过网络传输..Aaa我发现这些进程的加载时间在 VM2 上相当慢。

加载:

  • VM1- 15m

  • VM2- 45m

我检查了一些性能指标并进行了一些基本测试...在加载期间我可以看到 Network I/O Waits

  • VM1- 600 毫秒/秒

  • VM2- 750 毫秒/秒

我假设这个网络 I/O 等待来自 SSIS,因为 SSIS 正在对 SQL Server 执行查询,然后批量插入信息,等待统计告诉我这两种情况的等待类型都是 ASYNC_NETWORK_IO。

我还使用 SP_SPACEUSED 进行了测试,以查看同时插入两个表中的行数,结果不是非常准确,但 VM1 几乎使插入的行数翻了一番......

我错过了任何进一步的测试吗?你想到的其他检查吗?

performance sql-server optimization sql-server-2016 query-performance

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

按父级对没有共同组的每 X 行求和

试图按父项对没有共同组的每 X 行求和

declare @temp table(Row_ID int, amt DECIMAL(18,2))
insert into @temp values(1, 20)
insert into @temp values(2, 24)
insert into @temp values(3, 20)
insert into @temp values(4, 15)
insert into @temp values(5, 15)
Run Code Online (Sandbox Code Playgroud)

如果 X 行是 2,那么所需的结果是对 2 行求和并将总数放在行旁边。所以前 2 行总计为 44 ,接下来的 2 行为 35 ,剩下的 1 行总计为 15

Row_ID  amt     tot
1       20.00    44.00
2       24.00    44.00
3       20.00    35.00
4       15.00    35.00
5       15.00    15.00
Run Code Online (Sandbox Code Playgroud)

如果 X 行是 3,那么所需的结果

Row_ID  amt     tot
1       20.00    64.00
2 …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2016

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