标签: sql-server-2016

通过 SQL Server 代理作业调用时,PowerShell 命令“New-Item”失败

我有以下 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)

sql-server powershell windows-server sql-server-2016

2
推荐指数
1
解决办法
614
查看次数

有多大的表或索引中有多少数据页值得考虑运行索引重建或索引重组操作?

在用于重新组织和重建索引的联机丛书中,Microsoft 提到:

重建或重组小型行存储索引通常不会减少碎片。

在值得考虑索引重组或索引重建操作的地方的截止点附近考虑了多少行数或数据页数?

index sql-server index-tuning fragmentation sql-server-2016

2
推荐指数
1
解决办法
240
查看次数

将 COMPRESSION_DELAY 添加到现有的 COLUMNSTORE INDEX

当我创建一个 COLUMNSTORE 索引时,我可以COMPRESSION_DELAY = x [minutes]在 CREATE-Statement 中指定。它延迟了封闭段中的行从增量存储到压缩列存储的移动。这样做的原因:您的导入过程不仅是一个简单的 INSERT,而且还有一些 UPDATE 和 DELETE。

有没有办法在不重新创建整个索引的情况下设置这个值(这在我们的大表上需要很长时间)?

我测试已经REBUILD和重组,但他们都不懂COMPRESSION_DELAY的选项WITH()

sql-server columnstore sql-server-2016

2
推荐指数
1
解决办法
302
查看次数

在查询存储中查找特定查询

我在数据库上启用了查询存储。我有一个要跟踪的特定查询。我有很多关于 sp_BlitzCache 查询的详细信息(如 SQL 文本、SQL 句柄、SQL 哈希、计划缓存句柄/哈希等)。

我是否可以使用来自 sp_BlitzCache 的信息搜索查询存储以跟踪那里的查询?我想强制执行特定的执行计划,因为查询会遇到参数嗅探问题。

sql-server-2016 query-store

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

是否可以在行存储索引后面公开 B 树的最大深度,或者查看特定查询遍历了多少个节点的方法?

我个人对数据结构很感兴趣,并且知道行存储索引存储在它们后面的 B 树,我总是很好奇尝试可视化那些 B 树对于给定表/索引的样子。

有没有办法通过执行计划、统计信息、运算符属性、索引/表属性等关联或公开给定行存储索引的 B 树中的节点数?

此外,我可以做同样的事情来确定特定查询遍历的节点数吗?

如果有一种方法也可以确定 B 树中的叶节点数,则加分。

index tree sql-server btree sql-server-2016

2
推荐指数
1
解决办法
35
查看次数

我应该获得什么 Microsoft DBA 证书?

我正在考虑获得 Microsoft DBA 认证,但是试图找出我应该学习的确切证书有点令人困惑。

我的公司使用本地 SQL Server 2017,但似乎 Azure 数据库变得非常流行。那么,现场会消失吗?

“MCSA:SQL 2016 数据库管理”是我需要的吗?

如果我收到“MCSA:SQL 2016 数据库管理”,我是否能够管理 Azure DB?那有多不同?

谢谢

sql-server sql-server-2016 certificate

2
推荐指数
1
解决办法
496
查看次数

数据库的逻辑名称如何与 SSMS 中显示的名称不同?

我发现在生产服务器上有一个名为 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 backup restore sql-server-2016

2
推荐指数
1
解决办法
106
查看次数

缓慢的并行 SQL Server 查询,串行几乎是即时的

我有一个 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 …

parallelism sql-server-2016 query-performance

2
推荐指数
1
解决办法
206
查看次数

当 where 子句使用 OR 在连接中跨多个表进行过滤时,会发生表扫描而不是索引查找

我们有一个应用程序生成的查询,该查询使用一个视图,该视图具有两个通过 LEFT OUTER 连接连接的表。当仅从一个表(任一表)中按字段过滤时,会发生索引查找并且速度相当快。当 where 子句使用 OR 包含两个表中字段的条件时,查询计划将切换到表扫描并且不使用任何索引。

被过滤的所有四个字段都在它们各自的表上建立索引。

快速查询计划,我从一张表中筛选 3 个字段:https : //www.brentozar.com/pastetheplan/?id=Hym_4PRSO

慢查询计划,我过滤四个字段......三个来自一个表,一个来自另一个表:https : //www.brentozar.com/pastetheplan/?id=r1dVNDRHO

理想情况下,我想了解为什么会发生这种情况以及如何推动查询引擎利用所有索引。

我考虑过联合,但不幸的是,这个遗留系统正在使用ntext无法联合的值。还要注意两个表之间的连接是一对一的,所以我真的希望优化器利用索引,但也许它不知道?

join sql-server index-tuning sql-server-2016

2
推荐指数
1
解决办法
108
查看次数

不同服务器上的两个数据库之间是否可以部分同步?

想象一个场景,您有一个数据库的主实例和一个自动同步的辅助实例 - 与可用性组非常相似。

我的问题是我是否可以向辅助实例添加其他对象 - 特别是物化(索引)视图 - 而不需要该视图同步回主实例。

这可能吗?

(“为什么?”,我听到你问?因为我不希望维护视图的性能影响影响主实例。如果需要,可以找到辅助实例使用异步提交模式。)

data-synchronization sql-server-2016

2
推荐指数
1
解决办法
160
查看次数