问题标签 [dmv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - Dynamic Management View 给出的 Index Tuning 建议有多准确
一些索引建议可以从
我们可以依赖的索引列在此处建议的准确度如何?如果没有,有没有更快更好的方法来找到一些关于索引的提示?
sql-server - MDX 中用于动态管理视图的 WHERE 子句
我正在尝试使用 DMV 从表格多维数据集中查询元数据。我能够在没有 where 子句的情况下让它工作,但我似乎无法让 where 子句工作。有什么建议吗?
这是有效的代码:
我尝试过的 WHERE 子句是:
我收到以下错误:
还:
我收到以下错误:
我在这些主题上尝试了很多版本,但总是得到相同的结果。我完全不熟悉 MDX 的工作原理,因此我们将不胜感激。
sql - 如何处理 SSAS DMV 元数据中 255 的最大字符串长度
我正在尝试使用 SSIS 中的数据流将 SSAS DMV 元数据导入 SQL Server。在此示例中,我尝试从 $SYSTEM.TMSCHEMA_PARTITIONS DMV 导入数据。我的选择语句(看起来像 SQL 但不是 SQL)是:
QueryDefinition 列包含具有数千个字符的记录。但是,SSIS 数据源组件的 ExternalColumns 部分将列识别为长度为 255 的 DT_WSTR。无法更改外部列数据类型,因为它会不断恢复。根据 MS 文档,也不能在 DMV 选择语句中使用 CAST 或 CONVERT:
DMV 的查询引擎是数据挖掘解析器。DMV 查询语法基于 SELECT (DMX) 语句。尽管 DMV 查询语法基于 SQL SELECT 语句,但它不支持 SELECT 语句的完整语法。值得注意的是,不支持 JOIN、GROUP BY、LIKE、CAST 和 CONVERT。
自然,我遇到了截断错误。我的问题是,有没有办法改变 SSIS 解释 SSAS DMV 元数据数据类型的方式?
我尝试使用 order by (作为测试)首先返回字符串长度> 255 的记录,以迫使 SSIS 直接思考。这无济于事。
sql-server - 查找引用不存在对象的 SQL 例程
当我弃用/删除遗留 SQL 对象(存储过程、函数、视图、表)时,我需要执行耗时的搜索以确保删除不会破坏某些现有功能。
在许多情况下,当一个存储过程(例如)引用一个不存在的表(例如)时,这意味着这是一些现在不工作的遗留代码,可以删除。
那么,是否有任何系统视图,我可以查询以查找引用不存在对象的 SQL 例程?
sql - DMV 查询语法错误异常
我正在编写一个简单的查询函数,以使我的脚本高效且简单,因为我将来开始编写更多查询。
询问
我收到此错误:
使用“1”参数调用“Fill”的异常:“Query (1, 41) The syntax for '.' 不正确。(从 .DISCOVER_SESSIONS 中选择 [SESSION_ID]、[SESSION_SPID])。”
+ [void] $adapter.Fill($dataSet)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : OleDbException
我错过了什么吗?我遵循每个 MSDocs 的语法:
我实际上在没有创建查询函数的情况下成功地尝试了它并显示了结果。不知何故,将其作为查询功能不起作用...
sql-server - 是否可以从变量插入表?
假设我有两张桌子:
表 1 ( $SYSTEM.DISCOVER_SESSIONS
) 有 A、B、C 列
表 2 有 A、C、D 列
我从 A 和 C 列查询表 1 的select
数据
我将该查询结果保存在一个名为:$result
基本上它看起来像这样:
$result = 'SELECT [A],[C] FROM $SYSTEM.DISCOVER_SESSIONS'
现在我想INSERT
$result
在表 2 中,列自动匹配 (A, C) 因为这些是存储在$result
我意识到我可能会为此使用 JOINS,但我不确定如何为我试图做的事情制定正确的语法。
我尝试做的方法可能吗?
sql-server - 如何从变量中选择?
我用于执行 DMV 查询的辅助函数:
示例调用:
存储在的内容示例$dmvResult
:
我想从$dmvResult
变量中选择所有列并将它们插入到 SQL 表中。这是我可以从变量中选择的方式吗?
sql-server - 如何使 bulkCopy 映射相同的列?
假设我有一个包含以下列的 SQL 表:
[server_name],[SESSION_ID],[SESSION_SPID]
我正在尝试将存储在数据表 ( $dmvResult
) 中的值复制到上面的 SQL 表 ( $Table
)
虽然复制成功完成,但存在一个问题:它是按位置复制,而不是按列名匹配。换句话说,复制的列没有被映射并复制到相同的列。
[SESSION_ID] 被复制到 [server_name] 并且 [SESSION_SPID] 被复制到 [SESSION_ID]
如何告诉 bulkCopy 匹配列并复制?
结果副本应该是 [server_name] 为空,因为它不是从 DMV 查询中选择的。
我在这个线程中找到了一个巧妙的解决方案:
https://stackoverflow.com/a/20045505/8397835
但我不知道如何将其转换为我的 powershell 代码:
编辑:foreach column.ColumnName 输出
EDIT2:我试过这个:
它不输出任何东西。
在您说 $dmvResult 数据表必须为空之前,请解释一下这实际上如何工作并复制数据?
由于某种原因,它也将其输出到控制台:
所以数据表 $dmvResult 被清楚地填充了。
我希望而不是像这样为每一列定义映射:
相反,会有这样的自动选项:
但这会引发异常:
使用“1”参数调用“WriteToServer”的异常:“给定的 ColumnMapping 与源或目标中的任何列都不匹配。”
ssas - 我们如何知道 SSAS 多维数据集上的聚合是否未使用?
Sql server 版本:2016
有没有办法知道多维数据集上的聚合是否未使用?我试图获取有关 DMV 的信息$system.discover_object_activity(让我计算分区/度量组被命中或丢失的聚合)和$system.discover_partition_stat(聚合名称及其处理状态)。我已阅读有关 SSAS 特定 DMV 的文章以及加入 DMV 以从 DMV 获取组合数据以获取有用信息的挑战。但是,如果聚合未使用,我将无法获取信息,例如已使用/未使用的聚合列表
正在研究的多维数据集有 200 多个聚合。手动检查它们中的每一个并检查组合是很麻烦的。任何帮助表示赞赏。