AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-157

BradC's questions

Martin Hope
BradC
Asked: 2019-07-19 14:13:28 +0800 CST

SSMS 处理的换行符不一致

  • 0

可能比 SQL 本身更多的是 SQL Management Studio 问题,但是当我运行以下简单查询时:

SELECT results = 'Foo' + CHAR(13) + CHAR(10) + 'Bar'

根据我选择“结果到网格”还是“结果到文本”,我似乎得到了不同的结果。

将 SSMS 设置为“结果到文本”,我得到(如预期的那样):

results
--------
Foo
Bar

(1 row affected)

但是将 SSMS 设置为“结果到网格”,然后复制并粘贴结果,我得到

Foo  Bar
sql-server sql-server-2012
  • 1 个回答
  • 109 Views
Martin Hope
BradC
Asked: 2019-05-11 13:27:31 +0800 CST

如果我使用 CONTINUE_AFTER_ERROR,我会收到 BACKUP 遇到 CHECKSUM 错误的通知吗?

  • 2

我正在为WITH CHECKSUM我们的日常 SQL 备份添加标志,以更好地确保数据完整性。

我肯定想知道是否曾经遇到过校验和错误,但我也不希望我的工作在半夜陷入困境;我希望它完成备份“坏”数据库,然后继续备份服务器上的其他数据库。

如果我使用BACKUP WITH CHECKSUM, CONTINUE_AFTER_ERROR,它是否仍会抛出适当的错误(SEV 22或Error 825其他错误)来触发我的相关警报?或者完全CONTINUE_AFTER_ERROR抑制这一点,如果我解析作业步骤输出,我只会知道这个问题?

我只是对其进行测试,但我没有已知CHECKSUM不一致的数据库。

backup sql-server-2012
  • 2 个回答
  • 156 Views
Martin Hope
BradC
Asked: 2019-02-21 09:59:34 +0800 CST

更改“sa”密码是否需要重新启动 SQL(在混合模式下)?

  • 14

我们发现一个 SQL“sa”帐户以不应该的方式使用,因此我们正在更改所有 SQL 实例的 sa 密码。

(我们有 SQL 2005 到 2017 服务器以混合身份验证模式运行。所有用户和应用程序都应该使用域帐户或非 sa SQL 帐户连接。我一直在监视,但没有发现任何其他应用程序、用户或非- 使用 sa 帐户的内部 spid。)

几个问题:

Q1:修改sa密码是否需要重启SQL?

我发现一些参考资料说更改 sa 帐户密码后需要重新启动 SQL 服务:

  • DBA SE:更改 sa 密码
  • SQLAuthority:使用 Management Studio 更改 SA 登录密码

真的吗?还是仅当我更改身份验证模式时?或者仅当我经常以 sa 身份登录时?

这个 SQL Server Central 线程甚至建议更改它可能会影响现有的 SQL 代理作业和其他内容;这是一个问题吗?或者仅当有人将 SA 帐户硬编码到 SSIS 包或其他东西中时?

(以防万一,我们为 SQL 服务和 SQL 代理服务使用域帐户,为调用 SSIS 包或 PowerShell 脚本的作业使用域代理帐户。)

Q2:我可以用“正常”的方式更改 sa 密码吗?

我可以像重置任何其他帐户一样重置它吗?使用 SSMS,或者更有可能通过:

ALTER LOGIN sa WITH PASSWORD = 'newpass';

或者我是否必须进入单用户模式或需要计划停机时间的东西?(请注意,我将从域帐户运行它,而不是在连接为“sa”时。)

Q3:我们是否应该尝试定期进行密码轮换?还是只有当我们发现问题时?

这是推荐的“最佳实践”吗?

sql-server security
  • 2 个回答
  • 3887 Views
Martin Hope
BradC
Asked: 2018-10-30 12:28:27 +0800 CST

将没有列的 ROW_NUMBER() 添加到 ORDER BY?

  • 7

所以我正在研究一个代码高尔夫拼图,需要在结果中添加一个 INT“数字”列n,同时保持当前顺序。

假设我的源数据是:

SELECT value
FROM STRING_SPLIT('one,two,three,four,five', ',')

它以原始(所需)顺序返回项目:

value
-----
one
two
three
four
five

如果我尝试使用ROW_NUMBER()或者RANK()我被迫指定一个ORDER BY,这value是唯一合法的选择:

SELECT value, n = ROW_NUMBER() OVER(ORDER BY value)
FROM STRING_SPLIT('one,two,three,four,five',',')

但这(如预期的那样)按value字母顺序排序,而不是按所需的原始顺序排列:

value   n
------ ---
five    1
four    2
one     3
three   4
two     5

加入数字表是行不通的,因为没有WHERE子句我会得到一个完整的外连接。

我能想到的最好的方法是使用带有标识字段的临时表:

CREATE TABLE #argg (n INT IDENTITY(1,1), v VARCHAR(99))

INSERT #argg 
SELECT value v
FROM STRING_SPLIT('one,two,three,four,five',',')

SELECT *
FROM #argg

DROP TABLE #argg

但这真的很长而且很烦人。有更好的想法吗?

sql-server order-by
  • 4 个回答
  • 7318 Views
Martin Hope
BradC
Asked: 2018-07-04 07:03:52 +0800 CST

SSRS 2017 报告 IE 11 存在问题?

  • 6

我遇到的症状与这篇 2015 MSSSQLTips 文章中描述的症状非常相似:

SQL Server Reporting Services (SSRS) 与 Internet Explorer 11 不兼容

您已升级到 Internet Explorer 11,现在当您预览 SQL Server Reporting Services (SSRS) 报告时,您会发现打印命令在报告查看器中不可见。此外,有时当您更改参数值时,IE11 会停止响应或加载报告需要很长时间。您可能还会发现,使用 IE11 查看时,显示报表控件和导出功能的工具栏出现在多行上。当您在 Chrome 或 Mozilla Firefox 中预览相同的 SSRS 报告时,它可以正常工作,没有任何问题,这意味着它是浏览器兼容性问题。如何使 SQL Server Reporting Services (SSRS) 与 IE11 兼容?

几乎我能找到的关于这个问题的所有讨论都参考这篇文章(或现在不可用的 MS Connect 页面)。

问题是为 SSRS 2008 建议的服务器端修复不适用于 SSRS 2017(文件中没有<meta http-equiv="X-UA-Compatible" content="IE=5">标签ReportServer\Pages\reportviewer.aspx)。

SSRS 2017 是否有等效的服务器端修复程序?我应该将此meta标签添加到此文件还是其他 ASPX 文件?

其他帖子建议升级 SSRS,例如关于 SSRS 2012 的这个问题,但我已经使用了 SSRS 2017 的倒数第二个版本(14.0.600.689),并且最近补丁的更改日志似乎不包含任何相关的修复。

(客户端修复并非绝对不可能,但会涉及更困难的 AD 组策略推送,所以如果有的话,我更喜欢服务器端修复。)

ssrs ssrs-2017
  • 2 个回答
  • 4445 Views
Martin Hope
BradC
Asked: 2018-06-02 06:43:38 +0800 CST

恢复完整备份是否会将其带到备份开始时间或备份完成时间?

  • 5

背景故事:我正在尝试将多个 SQL 2012 数据库的副本恢复到不同的环境,但应用程序需要它们(大致)及时“同步”。

(当然,理想的方法是使用完整和日志备份的完整恢复模式,然后使用相同的时间戳进行时间点恢复。但在我的情况下,我不需要它们完全同步,就在大约 10 分钟左右,我宁愿只处理完整备份和恢复。我可以控制何时运行完整备份,但问题是数据库的大小非常不同,所以完整备份运行时间很长不同的时间长度。)

所以我的问题是:我应该同步完整备份的开始时间吗?还是结束时间?

换句话说,当我恢复完整备份时,我会得到备份开始时的样子还是完成时的样子?

sql-server sql-server-2012
  • 3 个回答
  • 2647 Views
Martin Hope
BradC
Asked: 2018-02-15 09:36:45 +0800 CST

跨数据库权限链是否适用于 sa/dbo 拥有的对象?

  • 4

我有两个数据库,都属于sa. 两个数据库中的所有对象都在 schema 中dbo。

我有一个用户需要从连接来自和的表的视图bob中进行选择。我不想向中的那些表授予直接权限,因为它们包含我不想看到的列。dbSafedbSafedbRestrictedbobdbRestrictedbob

我已经授予bob SELECT了视图和SET DB_CHAINING ON两个数据库的权限,但我仍然收到错误消息:

服务器主体“bob”无法在当前安全上下文中访问数据库“dbRestricted”。

我误解了跨数据库链接的作用吗?

如果源数据库中的源对象和目标数据库中的目标对象属于同一登录帐户,则 SQL Server 不会检查目标对象的权限。

数据库链接可以在这种情况下使用数据库所有者sa和模式dbo吗?或者它是否必须是显式登录帐户/非默认架构?

这个问题的公认答案建议在 中创建视图dbRestricted并向 分配直接权限bob,这在这种情况下可行吗?如果向该数据库添加视图对我来说不是一个选项(由于开发人员/供应商限制)怎么办?这不是跨数据库链接的目的吗?

sql-server sql-server-2012
  • 2 个回答
  • 958 Views
Martin Hope
BradC
Asked: 2018-01-06 11:28:15 +0800 CST

作为 SQL Server DBA,我需要了解有关崩溃/幽灵漏洞的哪些信息?

  • 14
这个问题的答案是社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。

如果您没有听说,最近发现了一组相关漏洞,这些漏洞几乎影响了过去十年销售的所有处理器。您可以在 InfoSec.SE 上找到有关崩溃/幽灵漏洞的更多技术细节。

作为 SQL Server DBA,我需要了解什么?

如果我们不与其他公司共享我们的 SQL Server(或我们的虚拟机场),这仍然是一种风险吗?

这只是一个操作系统补丁吗?或者是否有解决此漏洞所需的 SQL Server 修补程序/修补程序?哪些 SQL Server 版本将被修补?

一些文章预测 5-30% 的性能影响,尤其是在高度虚拟化的环境中。有什么方法可以预测对我的 SQL Server 的性能影响可能是什么?

sql-server patching
  • 1 个回答
  • 2232 Views
Martin Hope
BradC
Asked: 2017-07-18 13:42:01 +0800 CST

对于每个 SQL 实例,我的 SPN 条目应该是什么样的?

  • 10

我发现关于如何准确格式化 SPN(服务主体名称)以获得正确的 Kerberos 连接以及每个 SQL 实例需要多少个相互矛盾的信息。

此 2017 MS 文档包含以下内容:

从 SQL Server 2008 开始,为了支持 TCP/IP、命名管道和共享内存上的 Kerberos 身份验证,更改了 SPN 格式。命名实例和默认实例支持的 SPN 格式如下。

  • 命名实例:MSSQLSvc/FQDN:[port|instancename]
  • 默认实例:MSSQLSvc/FQDN:port|MSSQLSvc/FQDN

新的 SPN 格式不需要端口号。这意味着多端口服务器或不使用端口号的协议可以使用 Kerberos 身份验证。

我认为最后一段的意思是我只需要一个条目,以下之一:

  • 命名实例:MSSQLSvc/sqlbox1.mydomain.org/instance2
  • 默认实例:MSSQLSvc/sqlbox1.mydomain.org

这似乎与这个较旧的 (2011) MS 文档相矛盾,不仅与端口号有关,还与使用什么名称有关:

要创建 SPN,您可以使用 SQL Server 的 NetBIOS 名称或完全限定域名 (FQDN)。但是,您必须为 NetBIOS 名称和 FQDN 创建一个 SPN。

当我查看环境中已经存在的 SPN 时,我看到了各种各样的组合,有些服务器最多有 4 个条目:

  • MSSQLSvc/sqlbox1
  • MSSQLSvc/sqlbox1:1433
  • MSSQLSvc/sqlbox1.mydomain.org
  • MSSQLSvc/sqlbox1.mydomain.org:1433

甚至MS 自己的 Kerberos 配置管理器似乎也想生成最后两个版本(带有适当的混淆):

在此处输入图像描述

同样,对于现有的命名实例,我看到了一个奇怪的组合,其中一些几乎可以肯定是无效的:

  • MSSQLSvc/sqlbox1:1522
  • MSSQLSvc/sqlbox1:instance2
  • MSSQLSvc/sqlbox1.mydomain.org:1522
  • MSSQLSvc/sqlbox1.mydomain.org:instance2
  • MSSQLSvc/sqlbox1.mydomain.org/instance2
  • MSSQLSvc/sqlbox1.mydomain.org:1522:instance2

那么,如果我只在我的环境中使用 TCP,那么对于默认实例和命名实例,我的 DSN 应该是什么样子呢?

我应该包括端口,还是不包括?还是包括一个带端口和一个不带?

仅使用 FQDN,还是只需要带有 Netbios 名称的条目?或者只有当我们使用命名管道(我们不是)时才会这样?

(对于上下文,我们运行 SQL 2005 到 2014,一些集群,另一些独立。连接仅通过 TCP,在配置管理器中禁用命名管道。我们将手动修复/创建这些,而不是允许 SQL 服务帐户创建它们服务器启动。)

sql-server kerberos
  • 2 个回答
  • 19401 Views
Martin Hope
BradC
Asked: 2017-05-16 13:23:02 +0800 CST

SQL Master Data Services 数据库有巨大的叶子成员临时表 - 我可以清除旧记录吗?

  • 2

我们的一个 SQL 实例有一个大型 MDS 数据库,几乎 100% 的大小是由于一个名为stg.Stg_Project_Leaf. 它最近开始破坏我们每周的索引重建,所以我需要弄清楚这一点。

据我所知,这是“项目”实体的叶成员暂存表,作为构建 BI 多维数据集/报告的 ETL 过程的一部分进行设置和自动化(由先前的顾问)。

看起来它在过去几年中每半小时处理大约 10k 行,并且从未被清除过。但是,当我检查时ImportStatus_ID,我看到 0 行等待处理。(大多数是 1 - 成功,不到 1% 是 2 - 失败。)

我可以只用TRUNCATE这张桌子吗?

该系统正在以自动化方式使用,它不像人们登录到 MDS 控制台并单独监控和回滚更改。我发现了一些对清除这些表(mdm.udpStagingClear或可能mdm.udpDeletedMembersPurge)的存储过程的引用,但我不确定其中哪一个是我需要的,也不知道如果他们尝试执行 300m 是否会炸毁日志行。

sql-server sql-server-2012
  • 1 个回答
  • 2024 Views
Martin Hope
BradC
Asked: 2017-05-13 13:29:09 +0800 CST

查找不显示主机名的 spid 源

  • 5

我有一个繁忙的 SQL 2012 服务器,与一个特定数据库的连接(使用相同的 SQL 登录名)不显示“主机名”,我需要找出这些连接来自哪个(几个)框。

我已经尝试了所有普通的内置工具和第 3 方工具(、、、、、 SSMS 活动监视器master.sys.processes,甚至 SQL Profiler 和 Idera 诊断管理器) sys.dm_exec_sessions,它们都不能给我这些连接背后的服务器/客户端的主机名,大概是因为它们都使用相同的底层系统表/视图。sp_who2sp_WhoIsActive

我也可以使用 IP 地址,但也看不到任何从 SQL 中确定它的方法。

如果有任何帮助:

  • sys.dm_exec_sessions显示的client_interface_name是 ODBC
  • program_name两者都没有捕获
  • 用户是一个 SQL 帐户,恰好是 SYSADMIN(是的,我知道...)

我在这里找到了一个相关的问题(尽管来自另一边),但没有得到解答。

此时我很想禁用该用户,以便在 SQL 错误日志中捕获一些失败的登录,但我不认为应用程序团队会对此感到满意。

sql-server sql-server-2012
  • 1 个回答
  • 3860 Views
Martin Hope
BradC
Asked: 2017-04-29 14:10:35 +0800 CST

添加一个身份字段成为一个大表的新集群——我如何获得“正确”的顺序?

  • 3

我有一个非常大的表(8800 万行,大小接近 300GB),它的聚簇索引计划不周。我想添加一个BIGINT标识字段,并使其成为新的聚集索引(具有唯一、窄、静态和不断增加的理想属性)。

问题是我还希望这个新的身份字段在当前记录上以某种方式排序(基于不是当前集群的现有日期字段)。因此,当我们清除最旧的记录时,它们在磁盘上都是连续的。(不过,日期字段不是唯一的,因此它本身并不是集群的良好候选者。)

我怎样才能按照我想要的方式获得这个新身份字段的值?

我的第一个想法是创建一个带有标识字段的新表,并且只INSERT INTO将当前表ORDER BY中的行作为日期字段?那行得通吗?

如果我没有足够的磁盘空间来执行此操作,是否有任何方法可以“就地”执行此操作?也许通过将聚集索引更改为日期字段(等待很长时间),然后添加身份(再次等待很长时间)?身份的值是否保证由当前集群排序?

sql-server-2012 clustered-index
  • 1 个回答
  • 267 Views
Martin Hope
BradC
Asked: 2017-02-15 08:25:58 +0800 CST

主数据库已损坏,实例无法启动 - 我的选择是什么?

  • 14

帮助!我的主数据库已损坏,我什至无法使 SQL 实例联机!我有哪些选择可以让我的服务器备份?

我确实有master的备份,但是MSDN页面“Restoring master Database”要求我以单用户模式启动实例,我做不到!

(注意:我将这个问题未指定 SQL 版本,以便成为更广泛适用的参考。DBA.SE 上有一些类似的问题,但没有涉及服务器无法启动的问题。)

sql-server corruption
  • 3 个回答
  • 42527 Views
Martin Hope
BradC
Asked: 2016-05-27 11:59:17 +0800 CST

SQL Server 2008 R2 SP3 的“GDR”与“QFE”修补程序是什么?

  • 8

我一直认为更高的补丁号一定是以后的版本,但现在我不太确定。

查看 SQL Server 2008 R2 SP3 的SQL Server 构建列表,有两种可能的方法来应用安全更新 MS15-058,一种标记为“GDR”,另一种标记为“QFE”。

这些有什么区别?

根据这个博客条目,GDR(通用发行版)是我们都应该安装的,而 QFE 是“只有当你有这个特定问题时”的版本,或者类似的东西?

如果我不需要 TLS1.2 支持,我应该应用 10.50.6220 补丁吗?还是 10.50.6529 补丁?

sql-server sql-server-2008-r2
  • 1 个回答
  • 4481 Views
Martin Hope
BradC
Asked: 2015-12-01 09:44:19 +0800 CST

我可以在没有备用文件的情况下从 Standby/Read-Only 恢复 SQL 数据库吗?

  • 8

如果“备用文件”丢失,有什么方法可以从备用/只读模式恢复 SQL 数据库?

(我看到一些引用在日志传送场景中将此称为 TUF 文件,但在我的情况下,它只是手动恢复,备用文件具有 BAK 扩展名。)

执行“RESTORE DATABASE foo WITH RECOVERY”会导致致命错误:

During startup of warm standby database 'foo', its standby file
('path\filename.bak') was inaccessible to the RESTORE statement.
The operating system error was '5(Access is denied.)'. Diagnose the
operating system error, correct the problem, and retry startup.

恢复是不久前完成的,不幸的是,备用文件位于备份文件夹中,并被我们的文件夹清理例程删除。任何其他媒体上都不存在该文件的副本。用于恢复到这一点的原始备份也早已不复存在。

幸运的是,这对我们来说没什么大不了的(这是一个临时恢复),但除了“不要删除那个文件”之外,我在这个问题上找不到任何其他有用的参考资料。

如果归根结底,我想我可以编写整个数据库的脚本,或者使用 SSIS 将所有对象复制到一个新的数据库容器中,因为我面前有一个 db 的只读副本。

有什么办法可以解决这个问题?我当然不希望我能够将其翻转回“恢复”并继续进行后续恢复或其他任何操作,我只是想在当前状态下强制它进入正常在线模式,这样我就可以做到诸如更改权限,更改恢复模式,或进行新的完整备份之类的事情。

sql-server sql-server-2008
  • 1 个回答
  • 4615 Views
Martin Hope
BradC
Asked: 2015-10-06 06:31:05 +0800 CST

了解关闭“验证备份完整性”对 SQL 备份的影响/风险

  • 13

目前,我们在我们环境中的 SQL Server 2005/2008/2008R2/2012 服务器上使用标准维护计划进行备份,并且始终选中“验证备份完整性”框。

一些备份运行时间很长,因此我建议关闭该选项,但管理层需要我记录此更改的影响和风险。

我了解此选项的使用和历史,我似乎没有必要将备份工作的时间加倍(在我看来),任何可能发生的错误都将在备份步骤期间发生,而不是在验证期间发生。

我错了吗?如果我要备份到磁盘而不是流式磁带或其他东西,关闭它的风险是否最小?(如果相关,我们通过网络备份到 EMC DD-800 备份设备。)

是否有任何官方的 MS 建议何时可以安全地关闭此功能?

您是否对环境中的每个备份都运行“验证”?你抽查他们吗?

编辑:为了澄清,当您在维护计划中检查“验证备份完整性”时,SQL 将在每次备份后立即对每个数据库执行完整的RESTORE VERIFYONLY 。这与原始备份一样密集的数据/IO,并且(基本上)使备份作业的总时间加倍。这与在备份中启用“校验和”选项不同(据我所知,这不能在向导中完成)。

sql-server backup
  • 3 个回答
  • 10535 Views
Martin Hope
BradC
Asked: 2014-05-22 08:28:10 +0800 CST

列与字段:我是否错误地使用了这些术语?

  • 27

我觉得有点尴尬,我一直把“列”和“字段”这两个词完全互换使用,这在最近的一次技术讨论中引起了一些混乱。

不过,有人告诉我,这是不正确的,它应该是(将每个术语翻译成电子表格术语,忽略数据类型和所有其他使数据库有用的东西):

  • 数据库列:像电子表格列
  • 数据库记录:像电子表格行
  • 数据库字段:就像电子表格“单元格”(特定行的特定列)

这是正确的吗?我本可以发誓,列和字段的使用比这更可互换。我当然去过。

所以我们不向表中添加字段,我们向表中添加列,并且字段仅在谈论记录中的数据时才相关?

关于列与字段的其他想法?

编辑:澄清一下,当前上下文是 MS SQL Server。我在 SQL Server 之前的背景是 MS Access,这可能会影响我对这些术语的使用。

terminology fields
  • 5 个回答
  • 30728 Views
Martin Hope
BradC
Asked: 2013-08-20 12:18:10 +0800 CST

将 DBCC CHECKDB 划分为多天

  • 12

我正在为非常大的数据库实施 Paul Randal在几天内手动传播 DBCC CHECKDB 的方法,该数据库基本上包括:

  • 将数据库中的表大致平均划分为 7 个桶
  • 每周运行两次 DBCC CHECKALLOC
  • 每周运行一次 DBCC CHECKCATALOG
  • 一周中的每一天在一个存储桶上运行 DBCC CHECKTABLE

有人用过这种技术吗?有任何现有的脚本吗?

我担心这实际上可能无法涵盖 CHECKDB 所做的一切;CHECKDB 的联机丛书文档说,除了 CHECKALLOC、CHECKCATALOG 和 CHECKTABLE 之外,它还:

  • 验证数据库中每个索引视图的内容。
  • 当使用 FILESTREAM 在文件系统中存储 varbinary(max) 数据时,验证表元数据与文件系统目录和文件之间的链接级别一致性。(仅限 SQL 2008)
  • 验证数据库中的 Service Broker 数据。

所以这是我的问题:

  1. 这些额外的检查是否必要/重要?(索引视图可能对我来说更重要,我认为我们还没有使用 Service Broker 或 FILESTREAM。)

  2. 如果是这样,有没有办法单独执行这些额外的检查?

  3. CHECKALLOC 和 CHECKCATALOG 似乎运行得非常快,即使在大型数据库上也是如此。有什么理由不每天运行这些?

(注意:这将是数百台服务器上数千个现有数据库的标准例程,或者至少是每个超过一定大小的数据库。这意味着重组所有数据库以使用 CHECKFILEGROUP 等选项对我们来说并不实际。)

sql-server dbcc-checkdb
  • 2 个回答
  • 4363 Views
Martin Hope
BradC
Asked: 2012-02-16 14:26:58 +0800 CST

为每个 SQL 作业获取最近完成的步骤

  • 1

我正在尝试从 MSDB 数据库中获取作业列表及其最近完成的步骤。对于单个作业,这非常简单,例如:

 SELECT TOP 1 j.job_id, j.name, h.step_name, h.run_date, h.run_time, h.step_id
 FROM msdb.dbo.sysjobs j
 INNER JOIN msdb.dbo.sysjobhistory h ON j.job_id = h.job_id
 WHERE j.name = 'my favorite job'
 ORDER BY h.run_date DESC, h.run_time DESC, h.step_id DESC

但是我怎样才能得到所有工作的列表和他们最近完成的步骤呢?

注意这是 SQL 2000,所以我不能使用 PARTITION OVER。我也不能执行 SELECT MAX(),因为它不是单个 RunDateTime 字段,我必须按两个字段(OrderDay、OrderTime)降序排序。

编辑:可能不可能,但我希望能够做到:

SELECT j.job_id, ...
FROM msdb.dbo.sysjobs j
INNER JOIN (SELECT TOP 1 step_name, run_date, run_time, step_id
            FROM msdb.dbo.sysjobhistory
            WHERE job_id = j.job_id
            ORDER BY run_date desc, run_time desc, step_id desc) as H

或其他东西,但它似乎不喜欢那样的语法......

sql-server-2000 subquery
  • 2 个回答
  • 657 Views
Martin Hope
BradC
Asked: 2011-10-28 05:15:09 +0800 CST

为什么 AS 多维数据集重建使用这么多 TempDB?

  • 2

我有一个 50GB SQL 2008 数据库(其中只有 36 个是数据)和一个每晚重建的 24GB 分析服务器多维数据集。

多维数据集重建每晚都在 SQL 服务器上使用越来越多的 TempDB。昨晚 TempDB 数据文件在用完 TempDB 驱动器上的所有空间之前增长到大约 100GB。

我可以添加更多空间,但如果我能更多地了解这里发生的事情,我会感觉更好:

  • 多维数据集重建如何/为什么使用 SQL 服务器上的 TempDB 空间?
  • 有什么方法可以减少它使用的 TempDB 的数量,或者强制它在步骤之间“释放”tempdb,或者其他什么?
  • 随着我的数据不断增长,我有什么方法可以估计它可能会继续使用的空间量吗?(基于我数据库中某些关键表的大小,还是什么?)

编辑:我能想到的这个特定数据库的唯一显着区别是他们为最终数据集使用了一些非常大、非常复杂的嵌套视图。如果这些复杂的视图是用来构建多维数据集的,那能解释高温数据库的使用吗?

sql-server-2008 ssas
  • 1 个回答
  • 1623 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve