我有一个 HR 软件,HR 部门的一名员工在该软件上每年运行大约两次长时间且复杂的分析和计算。因此,它tempdb正在增长到 500GB 甚至更多。
什么是好的磁盘大小调整解决方案?因为今年剩下的时间tempdb没有那么大。
细节
tempdb和数据库在同一个分区上D:,日志文件在不同的分区上E: 出于好奇,只是想知道这是否可能:
我将下载 Microsoft 产品(例如:SQL Server 2017)企业版的 180 天试用版。
将其安装在虚拟机中。
试用期到期后,我将重新安装虚拟机,然后在其中重新安装 SQL Server,再进行 180 天的试用。
不确定开发版的背景及其与企业版的区别。只是希望我可以探索 SQL Server 2017 的所有功能,即使只是仅供家庭使用。
我只想有一个尽可能完整的产品功能的自学环境。
我正在尝试在 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) 我在这里发生了哈希匹配溢出。我已经用 FULLSCAN 更新了涉及的表的统计信息,所以不是这样。任何指针都非常感谢。
https://www.brentozar.com/pastetheplan/?id=Bkq1VjySm
我使用的是 SQL 2017 Enterprise,内存为 64GB。
performance sql-server optimization execution-plan sql-server-2017 query-performance
我一直在尝试启动 SQL Server 2017 并收到“没有足够的存储空间来完成此操作”。'
完整错误:
TDSSNIClient 初始化失败,错误为 0xe,状态代码为 0x1。原因:错误:19101,严重性:-1,状态:0。(参数:)。错误以简洁模式打印,因为格式化过程中出现错误。跟踪、ETW、通知等被跳过。没有足够的存储空间来完成此操作。
在系统事件上:
SQL Server (MSSQLSERVER) 服务因以下特定于服务的错误而终止:没有足够的存储空间来完成此操作。
我在所有驱动器上都有足够的空间,任何帮助表示赞赏。
我开始使用内存优化表,我遇到的问题是日志文件也随着数据库置于简单模式而增长。
在我的维护计划中,我检查点并缩小,但仍然存在问题。如果我将表恢复到普通磁盘表,一切看起来都很好。
有人知道原因吗?
数据库LOG_REUSE_WAIT_DESC在sys.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
您应该多久更新一次统计数据?什么是“太少”?“太频繁”有多频繁?
答案是“这取决于”您的数据库、用户、数据等。
所以我试图在两个表中记录我们的统计数据随着时间的推移是什么样的。他们来了:
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
以下不起作用。我想在 SQL Server 2017 中的列上创建同义词。我将如何执行此操作?
CREATE SYNONYM dbo.[ProductTest] for [dbo].[Product].[ProductId]
GO
select ProductTest from dbo.Product
Run Code Online (Sandbox Code Playgroud) 我们想对我们的散列函数使用 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
在SqlServerCentral.com上的一个帖子中,有几个人提到资源数据库的文件(mssqlsystemresource.mdf 和 ldf)应该与主数据库文件放在同一文件夹中。这是针对 SQL Server 2005 的。对于 SQL Server 2017,这仍然是推荐吗?我尝试在 BOL 中查找,但在那里找不到任何提及。
sql-server ×10
sql-server-2017 ×10
backup ×1
encryption ×1
hashing ×1
license ×1
optimization ×1
performance ×1
statistics ×1
synonyms ×1
tempdb ×1