任何人都可以验证/总结 SQL Server 2016 的 SP1 现在是否在标准版版本中提供表分区?它过去一直是企业版的功能。我在一些博客上看到过这个,但这是真的吗?
谢谢你,马克斯
我有一对在两个不同子网中运行的 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 侦听器?
是否有关于在具有 1000 多个数据库和 10TB 存储空间的服务器上将 SQL Server 2014 升级到 SQL Server 2016 需要多长时间的统计数据?安装后续 2016 服务包需要多长时间?有没有办法通过配置来优化这些安装时间?
目标是最小化维护窗口
更新:让我澄清一个问题。所有生产更新都将在 QA 环境中进行测试,问题不在于这一切。我问的是您已知的优化升级持续时间的选项。我将通过测量我环境中的升级时间来自己搜索这些选项,但如果有“以前的艺术” - 请分享。
我有一个奇怪的加密和解密问题。加密在 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) 我们使用的是 SQL Server 2016 并关闭了参数嗅探,因为它有时会导致严重的性能问题。我看到一些存储过程在 30 秒内运行,当它们重新编译时,它们在 2 秒内运行。这似乎与我们在参数嗅探中看到的行为非常相似。任何想法为什么这仍然发生?
账单
我有一个FactsTable1包含 240 列的每日事实表 ' ',我正在其中探索 ' Clustured Columnstore Index'(CCI)。
我想知道,
附加信息 :
我有迟钝。
任何人都可以查看此计划(PasteThePlan) 并告诉我需要优化的内容吗?这是实际的计划。
这是从应用程序获取客户信息的过程的一部分。在跟踪中我发现查询需要很长时间。大约需要 14 秒,而在另一个 POS 中则不到 1 秒。
我使用的是 SQL Server 2016 - Express Edition
performance sql-server sql-server-2016 microsoft-dynamics query-performance
在写更新语句之前,我应该检查它是否存在吗?
有人告诉我这样做
所以它避免了无用的写入事务日志中已经存在的值,
并且只需要一个允许其他读取的共享锁而不是一个排他锁。
他们说想象一个事务像这样针对不同的值多次运行,你会一直使用排他锁而不是共享锁。
同事提到,看锁兼容性图表,搜索时不能有两个更新锁,但可以有两个共享锁。因此,当“搜索要更新的行”没有要更新的值时,假更新锁可以阻止真正的更新。有人可以使此声明无效吗?
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)同样的问题,除了现在删除,我应该检查它是否存在吗?
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。
我有 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
试图按父项对没有共同组的每 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-2016 ×10
sql-server ×7
performance ×2
columnstore ×1
ddl ×1
delete ×1
encryption ×1
optimization ×1
security ×1
service-pack ×1
t-sql ×1
update ×1
upgrade ×1