我有以下 PowerShell 脚本可在共享位置创建文件夹。该共享对每个人都具有完全控制权限。我已授予所有测试权限。
问题是当我手动执行时脚本工作正常。当我作为 SQL Server 代理服务帐户执行它时,它也能正常执行。但是当我尝试作为 SQL Server 代理作业的一部分执行时,相同的脚本失败。我在这里错过了什么吗?
$path = "\\server\shared\path\01222020"
New-Item -path $path -ItemType Directory -Force
Exception:
Date 1/22/2020 5:25:10 PM
Log Job History (test)
Step ID 1
Server serverA
Job Name Test
Step Name Test
Duration 00:00:01
Sql Severity 0
Sql Message ID 0
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 0
Message
Executed as user: domain\agent_service_account. A job step received an error at
line 9 in a PowerShell script. The corresponding line is …Run Code Online (Sandbox Code Playgroud) 当我创建一个 COLUMNSTORE 索引时,我可以COMPRESSION_DELAY = x [minutes]在 CREATE-Statement 中指定。它延迟了封闭段中的行从增量存储到压缩列存储的移动。这样做的原因:您的导入过程不仅是一个简单的 INSERT,而且还有一些 UPDATE 和 DELETE。
有没有办法在不重新创建整个索引的情况下设置这个值(这在我们的大表上需要很长时间)?
我测试已经REBUILD和重组,但他们都不懂COMPRESSION_DELAY的选项WITH()。
我在数据库上启用了查询存储。我有一个要跟踪的特定查询。我有很多关于 sp_BlitzCache 查询的详细信息(如 SQL 文本、SQL 句柄、SQL 哈希、计划缓存句柄/哈希等)。
我是否可以使用来自 sp_BlitzCache 的信息搜索查询存储以跟踪那里的查询?我想强制执行特定的执行计划,因为查询会遇到参数嗅探问题。
我个人对数据结构很感兴趣,并且知道行存储索引存储在它们后面的 B 树,我总是很好奇尝试可视化那些 B 树对于给定表/索引的样子。
有没有办法通过执行计划、统计信息、运算符属性、索引/表属性等关联或公开给定行存储索引的 B 树中的节点数?
此外,我可以做同样的事情来确定特定查询遍历的节点数吗?
如果有一种方法也可以确定 B 树中的叶节点数,则加分。
我正在考虑获得 Microsoft DBA 认证,但是试图找出我应该学习的确切证书有点令人困惑。
我的公司使用本地 SQL Server 2017,但似乎 Azure 数据库变得非常流行。那么,现场会消失吗?
“MCSA:SQL 2016 数据库管理”是我需要的吗?
如果我收到“MCSA:SQL 2016 数据库管理”,我是否能够管理 Azure DB?那有多不同?
谢谢
我发现在生产服务器上有一个名为 MYOBInterim 的数据库。在其他环境(开发、测试)上,有一个名为 MYOBTraining 的数据库。(别问我为什么——我还在努力得到那个答案……)
我从开发实例创建了其中一个 MYOBTraining 数据库的备份,然后尝试将其恢复到另一个没有此类数据库的开发实例。
我的 SQL 大致如下。
use master;
go
If(db_id(N'MYOBTraining') IS NULL)
create database MYOBTraining
on
(name = MYOBTraining,
filename = 'D:\Database\Dev4\MYOBTraining.mdf' )
log on
(name = MYOBTraining_log,
filename = 'E:\Logs\Dev4\MYOBTraining_1.ldf' )
;
go
-- BIG NOTE:
-- Note we are moving 'MYOBInterim' (and not 'MYOBTraining')!
-- Prod calls this DB MYOBInterim. Even though we obtain the backup for use with this restore from DEV - where the DB is called MYOBTraining,
-- It seems …Run Code Online (Sandbox Code Playgroud) 我有一个 SQL Server 查询如下(混淆):
UPDATE [TABLE1]
SET [COLUMN1] = CAST('N' AS CHAR(1))
FROM [TABLE1]
WHERE (COLUMN1 = '2' AND COLUMN2 IN('VAL1', 'VAL2', 'VAL3')) OR
(COLUMN1 <> 'N' AND (
SELECT COUNT(*)
FROM TABLE2 wle
JOIN TABLE3 wl
ON wl.COLUMN3 = wle.COLUMN3
WHERE TABLE1.COLUMN4 = wle.COLUMN4 AND
(wl.COLUMN5 = '1' OR wl.COLUMN6 = '1') AND
wle.COLUMN7 = (
SELECT MIN(alias.COLUMN7)
FROM TABLE2 AS alias
WHERE TABLE1.COLUMN4 = alias.COLUMN4
)
) > 0
)
Run Code Online (Sandbox Code Playgroud)
我们刚刚将我们的(测试)服务器从 SQL Server 2014 SP3 升级到 SQL Server …
我们有一个应用程序生成的查询,该查询使用一个视图,该视图具有两个通过 LEFT OUTER 连接连接的表。当仅从一个表(任一表)中按字段过滤时,会发生索引查找并且速度相当快。当 where 子句使用 OR 包含两个表中字段的条件时,查询计划将切换到表扫描并且不使用任何索引。
被过滤的所有四个字段都在它们各自的表上建立索引。
快速查询计划,我从一张表中筛选 3 个字段:https : //www.brentozar.com/pastetheplan/?id=Hym_4PRSO
慢查询计划,我过滤四个字段......三个来自一个表,一个来自另一个表:https : //www.brentozar.com/pastetheplan/?id=r1dVNDRHO
理想情况下,我想了解为什么会发生这种情况以及如何推动查询引擎利用所有索引。
我考虑过联合,但不幸的是,这个遗留系统正在使用ntext无法联合的值。还要注意两个表之间的连接是一对一的,所以我真的希望优化器利用索引,但也许它不知道?
想象一个场景,您有一个数据库的主实例和一个自动同步的辅助实例 - 与可用性组非常相似。
我的问题是我是否可以向辅助实例添加其他对象 - 特别是物化(索引)视图 - 而不需要该视图同步回主实例。
这可能吗?
(“为什么?”,我听到你问?因为我不希望维护视图的性能影响影响主实例。如果需要,可以找到辅助实例使用异步提交模式。)
sql-server-2016 ×10
sql-server ×7
index ×2
index-tuning ×2
backup ×1
btree ×1
certificate ×1
columnstore ×1
join ×1
parallelism ×1
powershell ×1
query-store ×1
restore ×1
tree ×1