我想知道我们需要为我的 PROD 数据库启用自动增长设置时需要考虑的因素。
我已经检查了数据库增长历史,并且数据库每天(平均)每天增长 1 到 1.5 GB。
当前数据库大小为 600 GB。此外,我检查了可用的可用空间,我们有足够的空间让文件增长。但是,如果我现在将自动增长设置为 1 GB,那么这个空间将在一段时间后被填满。
请建议我一些应该考虑的更多因素,以便我可以有效地利用这些可用的可用空间,从而消除至少 10-12 个月对新磁盘的需求。
我已经在两个数据库之间实现了事务复制。现在我必须Transparent Data Encryption (TDE)在 Publisher 数据库上实施。
是否可以只在主数据库中实现 TDE?复制的数据会与复制一起加密吗?
我们有一个 SQL Server 2012 服务器,它在(据我所知)相同的基础设施上远远优于 SQL Server 2019 数据库。我们在具有相同 SLA 的云平台上托管这两个数据库。两者都有 180GB RAM 和 16 个处理器。
但是,存在一些关键差异。
编辑:我刚刚意识到的另一个主要区别 - 一个是 Windows Server 2008,另一个是 Windows Server 2019。它也可能是服务器端设置......
所有 SQL 磁盘的分配单元大小设置为 64kb,SQL 具有能够控制文件大小本身的正确权限。服务器设置为高性能模式。还有什么我应该改变服务器端?
其他数据库设置没有改变,所以以下设置是2019年的默认设置,我相信:
我们所做的主要查询类型是执行更新和插入的大型复杂多连接查询,偶尔会从用户那里进行小选择。我们将大文件加载到数据库中,然后在大型查询中处理数据,通常一次一个。在这些大的“加载”之间,我们有用户在其他未加载/处理的数据库表上进行选择,为将来的加载/处理步骤做准备。通常,我们的处理性能降低了 30%-50%。我认为这是因为 MAXDOP 设置,但将其更改为 0 对一系列运行没有影响。
我们的主要症状是,当我们在 2019 年服务器忙于处理时尝试连接到它时,我们会遇到锁定超时,而 2012 年服务器仍在为连接提供服务,只是速度很慢。我正在考虑将服务器上的连接超时设置设置为较高的值,但是我怀疑我们仍然无法从服务器获得响应。就好像它甚至有点忙就会阻塞所有新连接。
还有其他我应该尝试的事情吗?这些数据库设置值得摆弄吗?
我可以进一步深入研究并开始查看 DMV,但是这似乎接近于“喜欢”的环境升级,性能大幅下降。在进行更大的调查之前,只是检查一下我没有其他应该检查的东西。
我有一个对特定数据库具有 DB_Owner 权限的用户。现在,该用户需要为自己创建一个链接服务器。我需要在服务器级别授予该用户什么级别的权限才能创建链接服务器?我不想授予他系统管理员访问权限。我提供了以下访问权限:
Grant control server to login
grant alter any linked server to login
Run Code Online (Sandbox Code Playgroud)
但没有努力创建链接服务器。
我们正在扩展我们的数据仓库以包含一个新的源系统。在新系统中,我们希望主键只有一列,但在旧系统中,它是两列。
例如:
create table #new_case (case_id varchar(255))
create table #old_case (patient_id int, care_event_counter int)
insert into #old_case (patient_id, Care_event_counter)
values
(55, 1),
(55, 2),
(55, 3),
(56, 1),
(57, 1),
(57, 2)
insert into #new_case (case_id)
select cast(patient_id as varchar(55)) + '_' + cast(care_event_counter as varchar(55))
from #old_case
select * from #new_case
Run Code Online (Sandbox Code Playgroud)
问题:这在大规模上必须非常慢,我更喜欢全面使用 int 。
问题:如何智能合并两个整数列?有没有数学技巧可以用来推导出更快的值?
我的 SQL Server 2019 SE 在 Windows Server 2019 SE 上运行,硬件规格如下:
40 核 1TB 内存
我认为上述规范是矫枉过正!但如果我从 Windows 任务管理器中看到:
SQL Server 内存使用量为:384GB,处理器使用量为 8 核。
如何将真实的 SQL Server 内存和每分钟 CPU 利用率记录到一个表中,以便我可以分析所需的真实规格是什么?
我需要升级我的 SQL Server。我收到以下消息:
我目前有 SQL Server Developer 版本。我去了https://www.microsoft.com/en-us/sql-server/sql-server-downloads并单击开发人员:
单击下载的可执行文件后,我没有看到升级选项.. 想知道我是否可能下载了错误的文件。我目前安装了以下内容:
Microsoft SQL Server 2017 (RTM-GDR) (KB4583456) - 14.0.2037.2 (X64) 2020 年 11 月 2 日 19:19:59 版权所有 (C) 2017 Microsoft Corporation Developer Edition(64 位),Windows 10 Pro 10.0(内部版本:19042) )
一个配置文件可以有多种配置文件类型。该配置文件可以有许多字段,这些字段都与查找表相关联。某些字段可以有多种选择。
\n\nprofile -> profile_date -> one relationship status, one zodiac, many languages, many countries traveled, many cuisines, many activities, ...\n\nprofile -> profile_network -> one company, one school, ...\n\nprofile -> ...\nRun Code Online (Sandbox Code Playgroud)\n\n字段的查找表如下所示:
\n\nid type\n1 \xe2\x99\x88 ARIES\n2 \xe2\x99\x89 TAURUS\n3 \xe2\x99\x8a GEMINI\n4 \xe2\x99\x8b CANCER\n5 \xe2\x99\x8c LEO\n6 \xe2\x99\x8d VIRGO\n7 \xe2\x99\x8e LIBRA\n8 \xe2\x99\x8f SCORPIO\n9 \xe2\x99\x90 SAGITTARIUS\n10 \xe2\x99\x91 CAPRICORN\n11 \xe2\x99\x92 AQUARIUS\n12 \xe2\x99\x93 PISCES\nRun Code Online (Sandbox Code Playgroud)\n\n如果该字段是单个选择,我们将加入查找表,然后就完成了。
\n\n-> profile_date (zodiac_type_id) -> zodiac_type.id\nRun Code Online (Sandbox Code Playgroud)\n\n如果字段是多项选择,则中间有一个用于多对多的联接表。
\n\n-> profile_date -> (profile_date_id) profile_date_languages (language_type_id) -> language_type.id\nRun Code Online (Sandbox Code Playgroud)\n\n … 我正在考虑通过 PowerShell 或任何其他方式设置一个自动化流程,以便在 SQL Server 主机上的磁盘利用率达到 90% 时截断 SQL Server 事务日志文件。
有人有可以做到这一点的代码吗?任何帮助将不胜感激!
注意:我知道这不好,但它仅适用于日志文件
我试图找出 MS CTE 实际上如何访问数据。尝试找出 CTE 在提取数据时是否实际上会运行得更慢,以及 CTE 提取数据的顺序是什么。CTE 是在调用视图时提取数据还是在创建结果集时的最后一个 select 语句中提取数据?CTE 需要多久调用一次数据库来获取额外数据?
sql-server ×9
auto-growth ×1
cte ×1
performance ×1
postgresql ×1
powershell ×1
replication ×1
transparent-data-encryption ×1
upgrade ×1