是否有任何文档、测试数据或其他证据表明在数据库上启用 TDE 时并行成本阈值 (CTP) 设置可能会影响性能?在不深入研究所有细节的情况下,我们发现在数据库上启用 TDE 后,基准测试出现了一些显着的性能下降,我们正在寻找可能产生影响的任何设置。CTP 当前设置为默认值 5,我知道这并不理想,所以请抵制对我进行惩罚的冲动。
我们还将添加 CPU 并进一步测试,但如果我们可以通过更改 CTP 或其他设置获得更好的性能,那当然比添加 CPU 更好(由于硬件成本以及每个 CPU 的 SQL Server 许可) .
我正在推动更改 CTP 并再次测试,但我希望看看是否有人已经对其进行了测试,以便我们可以相应地优先考虑要测试的更改。
谢谢!
我有一个关于将 SQL Server 2017 设置为服务的最佳方式的问题。
我有客户将 SQL Server 数据库作为服务购买,就好像它是 Azure 或 AWS 实例一样,他们无法访问服务器。他们在实例中只有用户名和密码,我需要向这些用户隐藏可通过 SQL Server Management Studio 或 T-SQL 命令访问的服务器配置,例如分配给实例的内存、CPU 数量等.
在 SQL Server 2016 中,我通过删除 master..xp_msver 视图的权限来完成此操作。例如,如果没有此权限,他们将无法查看实例属性(在 SSMS 中右键单击服务器)和 Facets 表单中的一些数据。即使没有此权限,他们也可以登录并在其数据库中执行所需的一切操作。
但在 SQL Server 2017 中,这不再有效,如果我拒绝此视图的权限,则无法再登录 SQL Server。
我知道将标准 SQL Server 用作服务可能不正确,也许它还没有为此做好准备,但是有正确的方法吗?或者可以使用哪些替代方案?
我花了很多时间在 Google 上试图寻找替代方案,但是对于 SQL Server 2017,我没有找到任何隐藏服务器设置的东西。
注意:我的用户使用 SQL Server Management Studio...
我们在高可用性组中有一些服务器,需要为服务器上发生的任何故障转移配置电子邮件通知。
使用 SQL Server 2016,我有一个 3rd 方应用程序,它使用我的 SQL Server 上的大型数据库进行数据存储、处理等。
我有一个 BI 团队需要访问这些数据来运行报告和批处理任务,其中一些包括使服务器瘫痪的繁重查询,因此他们无法在实时数据库上执行此操作。为此,我有一个现有的日志传送解决方案,该解决方案维护此数据库的复制供他们使用,但是依赖于该复制数据的数据量和用户数量已经增长到使数据库脱机的程度一天中多次执行日志传送更新已不再可接受。
因此,我想使用 AlwaysOn 可用性组复制而不是日志传送,以便数据在工作时间内保持在线状态并自动更新。
但是,我的问题是我正在复制其数据库的应用程序有点陈旧过时,而且设计它的人显然不知道或不太关心数据库优化,因为很多较大的表没有一个主键。
我已经为一些表添加了索引,这工作正常,但是如果我完全修改表的结构(例如添加主键),应用程序拒绝将它们识别为有效并停止工作。因此,在我说服供应商添加它们之前,这些表将不得不保留没有主键,这可能需要数年时间。
与此同时,有什么我可以做的吗?我试过使用事务复制,它复制了所有带有主键的表就好了,但是没有键的表根本不存在于复制的数据库中。
我听说合并复制可以在没有主键的表上完成,并且可以对可用性组使用合并复制。真的吗?如果是,您能指出我创建此类复制的正确方向吗?
我想知道下面的存储过程有什么问题,因为我没有返回任何错误,但同时我无法更新我的 Watermarkvalue 列。它返回NULL。
ALTER PROCEDURE [dbo].[usp_UpdateWatermark]
@tableName nvarchar(500)
AS
BEGIN
DECLARE
/* ============= Variables ============= */
@watermarkValue nvarchar(MAX)
DECLARE
/* ============= Variables ============= */
@tabName nvarchar(MAX)
Set @tabName ='SELECT '+ @watermarkValue +'= MAX([LOAD_DATE]) FROM '+ @tableName
Execute sp_executesql @tabName
UPDATE dbo.WatermarkTable
SET WatermarkValue = @watermarkValue
WHERE TableName = @tableName
END
Run Code Online (Sandbox Code Playgroud)
这里我的 WatermarkValue 总是返回 NULL。水印表的列是 TableName 和 WatermarkValue,LOAD_DATE 是数据库中另一个表中的列
我一直在尝试在我的 AG 环境中获取 RegisterAllProvidersIP 的参数值。但是,该命令并未获取所有结果。结果集只有 4 个参数,我想知道如何获取所有参数。我想检查一下以调查持续的连接问题。这是多子网 AlwaysOn 配置。
我正在使用以下命令:
Get-Clusterresource -Name AG_Name | Get-ClusterParameter
AG_Name 是侦听器名称。
请帮助确定我做错了什么,还是只是一些权限问题?
使用正确连接的以下查询出现错误。我的表有一个名为“id”的列。
SELECT TOP 6 id
FROM dbo.tbldata
RIGHT JOIN tblimg
ON tbldata.id = tblimg.newsid
ORDER BY createdDate DESC
Run Code Online (Sandbox Code Playgroud)
错误是:
不明确的列名“id”