标签: sql-server-2017

“tempdb”的磁盘大小注意事项 - 每年大幅增长两次

我有一个 HR 软件,HR 部门的一名员工在该软件上每年运行大约两次长时间且复杂的分析和计算。因此,它tempdb正在增长到 500GB 甚至更多。

什么是好的磁盘大小调整解决方案?因为今年剩下的时间tempdb没有那么大。

细节

  • SQL Server 版本和相关版本是 2017 标准版。
  • tempdb和数据库在同一个分区上D:,日志文件在不同的分区上E:
  • HR 数据库本身大约有 78GB。

database-design sql-server tempdb sql-server-2017

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

在虚拟机中安装企业版

出于好奇,只是想知道这是否可能:

  1. 我将下载 Microsoft 产品(例如:SQL Server 2017)企业版的 180 天试用版。

  2. 将其安装在虚拟机中。

  3. 试用期到期后,我将重新安装虚拟机,然后在其中重新安装 SQL Server,再进行 180 天的试用。

不确定开发版的背景及其与企业版的区别。只是希望我可以探索 SQL Server 2017 的所有功能,即使只是仅供家庭使用。

我只想有一个尽可能完整的产品功能的自学环境。

sql-server license sql-server-2017

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

使用不同的服务帐户时向 SQL Server 颁发恢复证书

我正在尝试在 SQL 2017 中配置备份加密,但遇到了一些问题。

我在一台机器上创建主密钥和证书没有问题。我在另一台机器上安装证书并读取备份也没有问题,但是,如果另一台机器运行的服务帐户与创建证书的服务帐户不同,这将不起作用。

以下是我正在采取的步骤(我也尝试恢复主密钥,但也会引发错误):

/* Server 1 */
/* Create the master key */
USE master;  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'SomeRandomSecureString';  
GO 


/* Create the certificate to be used for backups */
CREATE CERTIFICATE BackupCert  
   WITH SUBJECT = 'Backup Encryption Certificate';  
GO

/* Backup the master key */
BACKUP MASTER KEY TO FILE = '\\FileShare\DatabaseMasterKey_Master.key'   
    ENCRYPTION BY PASSWORD = 'SomeRandomPwd';

BACKUP CERTIFICATE BackupCert TO FILE = '\\FileShare\BackupCert.cer'
  WITH PRIVATE KEY (FILE = '\\FileShareBackupCert.pvk',   
     ENCRYPTION BY …
Run Code Online (Sandbox Code Playgroud)

sql-server backup encryption sql-server-2017

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

哈希匹配溢出

我在这里发生了哈希匹配溢出。我已经用 FULLSCAN 更新了涉及的表的统计信息,所以不是这样。任何指针都非常感谢。

https://www.brentozar.com/pastetheplan/?id=Bkq1VjySm

我使用的是 SQL 2017 Enterprise,内存为 64GB。

performance sql-server optimization execution-plan sql-server-2017 query-performance

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

无法启动 SQL Server 2017?

我一直在尝试启动 SQL Server 2017 并收到“没有足够的存储空间来完成此操作”。'

完整错误:

TDSSNIClient 初始化失败,错误为 0xe,状态代码为 0x1。原因:错误:19101,严重性:-1,状态:0。(参数:)。错误以简洁模式打印,因为格式化过程中出现错误。跟踪、ETW、通知等被跳过。没有足够的存储空间来完成此操作。

在系统事件上:

SQL Server (MSSQLSERVER) 服务因以下特定于服务的错误而终止:没有足够的存储空间来完成此操作。

我在所有驱动器上都有足够的空间,任何帮助表示赞赏。

sql-server sql-server-2017

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

SQL Server 2017 日志文件增长与内存优化表

我开始使用内存优化表,我遇到的问题是日志文件也随着数据库置于简单模式而增长。

在我的维护计划中,我检查点并缩小,但仍然存在问题。如果我将表恢复到普通磁盘表,一切看起来都很好。

有人知道原因吗?

数据库LOG_REUSE_WAIT_DESCsys.databases.

所有的 mem opt 表都在 SCHEMA_ONLY 模式中,但仍然是完整的日志记录。

SQL Server 2017 版本 14.0.3037

我还在 SQL Server 错误日志中看到这些消息:

spid38s,Unknown,[INFO] 数据库 ID:[5]。删除不可恢复的检查点表行 (id: 669)
spid102,Unknown,[INFO] HkHostFreezeCkptTrimming()。数据库 ID:[5]。HkTrimLSN 冻结:1
spid102,未知,[信息] getMaxUnrecoverableCheckpointId()。数据库 ID:[5]。日志 LSN 开始:00001714:000004E0:0002 用于在完整备份期间修剪不可恢复的检查点文件表

内存优化表的大小情况: 内存优化表

基于磁盘的表的大小情况: 基于磁盘的表

sql-server transaction-log memory-optimized-tables sql-server-2017

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

您应该多久更新一次统计数据?

您应该多久更新一次统计数据?什么是“太少”?“太频繁”有多频繁?

答案是“这取决于”您的数据库、用户、数据等。

所以我试图在两个表中记录我们的统计数据随着时间的推移是什么样的。他们来了:

DROP TABLE /*IF EXISTS */ dbo.dm_db_stats_histogram
DROP TABLE /*IF EXISTS */ dbo.dm_db_stats_properties
go
CREATE TABLE dbo.dm_db_stats_properties(
  dm_db_stats_propertiesID INT IDENTITY(1,1) NOT NULL constraint PK_dm_db_stats_properties PRIMARY KEY CLUSTERED,
  DatabaseId INT NOT NULL,
  object_id int NOT NULL,
  stats_id  int NOT NULL,
  last_updated  DATETIME2 NOT NULL,
  rows  BIGINT NOT NULL,
  rows_sampled  BIGINT NOT NULL,
  steps int NOT NULL,
  unfiltered_rows   BIGINT NOT NULL,
  modification_counter  BIGINT NOT NULL,
  persisted_sample_percent  FLOAT  NULL
  , SampleDate DATETIME2 NOT NULL CONSTRAINT df_dm_db_stats_properties_SampleDate DEFAULT SYSUTCDATETIME()
)
GO
ALTER …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server statistics azure-sql-database sql-server-2017

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

如何为 SQL Server 中的列创建同义词?

以下不起作用。我想在 SQL Server 2017 中的列上创建同义词。我将如何执行此操作?

CREATE SYNONYM dbo.[ProductTest] for [dbo].[Product].[ProductId]
GO

select ProductTest from dbo.Product
Run Code Online (Sandbox Code Playgroud)

sql-server synonyms sql-server-2016 sql-server-2017

3
推荐指数
2
解决办法
2779
查看次数

我应该在 SQL Server 中使用已弃用的 MD5 函数吗?

我们想对我们的散列函数使用 MD5 而不是 SHA_256,但从 SQL Server 2016 开始,不推荐使用 MD5。我们将其用于散列(比较哪些记录已更改)。我们现在面临着使用这个函数冒着风险或使用 SHA_256 产生存储和性能开销的困境。令人沮丧的是,Microsoft 决定弃用这些功能,即使它们在某些情况下仍然有用。

该项目不是业务的关键组成部分。我们可能会选择 SHA_256,但这是正确的选择吗?新开发应该总是避免弃用的功能吗?

对于上下文 - 每天将有大约 1-2 百万个更新插入到一个 4 亿行表中,动态比较哈希字节。大约 30 列宽

https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql?view=sql-server-2017

在 HashBytes 函数中选择正确的算法

sql-server hashing sql-server-2017

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

主数据库文件与资源数据库文件的 SQL Server 放置

SqlServerCentral.com上的一个帖子中,有几个人提到资源数据库的文件(mssqlsystemresource.mdf 和 ldf)应该与主数据库文件放在同一文件夹中。这是针对 SQL Server 2005 的。对于 SQL Server 2017,这仍然是推荐吗?我尝试在 BOL 中查找,但在那里找不到任何提及。

sql-server sql-server-2017

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