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
    • 最新
    • 标签
主页 / dba / 问题 / 31821
Accepted
Biju jose
Biju jose
Asked: 2013-01-12 19:07:17 +0800 CST2013-01-12 19:07:17 +0800 CST 2013-01-12 19:07:17 +0800 CST

SQL 服务器 BPA 2008R2

  • 772

我一直在使用 SQL Server BPA 从 Microsoft 获取有用的信息。我使用的是它的 2005 版本,我曾经在其中以 CSV 格式导出结果,但最近我得到了两台新服务器,上面安装了 SQL Server 2008 R2,我知道我不能在这些服务器上运行 BPA 2005,所以选择了它的 R2 版本,但它没有以 CSV 格式保存报告的选项,只有 XML,我曾尝试使用 Excel 将其转换为 CSV 但没有用,即使它显示详细信息但不能缩小记下结果 将结果转换为 CSV 格式有什么想法吗?

sql-server sql-server-2008-r2
  • 4 4 个回答
  • 495 Views

4 个回答

  • Voted
  1. Best Answer
    Eilert Hjelmeseth
    2014-04-04T16:29:32+08:002014-04-04T16:29:32+08:00

    虽然 PowerShell 在我要学习的东西列表中名列前茅,但我现在对它了解不多,而且我需要一个快速的 csv,所以我用 T-SQL 编写了一个简单的查询,以从 XML 中获取我需要的数据表格格式,然后将其复制到 excel 中并保存。

    -- get XML from file
    DECLARE @xml XML;
    SELECT 
        @xml = CAST(A.[BulkColumn] AS XML)
    FROM OPENROWSET(BULK 'C:\bpa_results.xml', SINGLE_BLOB) A;
    
    -- query XML data
    WITH XMLNAMESPACES ('http://schemas.microsoft.com/powershell/2004/04' as x)
    SELECT
        S.*
    FROM @xml.nodes('x:Objs/x:Obj') A ([obj]) -- "root" objects
    CROSS APPLY A.[obj].nodes('x:LST/x:Obj') B ([obj]) -- findings objects
    CROSS APPLY 
        (
            SELECT 
                A.[obj].value('@RefId', 'NVARCHAR(500)') [root_obj_RefId],
                B.[obj].value('@RefId', 'NVARCHAR(500)') [findings_obj_RefId],
                B.[obj].value('x:Props[1]/x:S[@N="ResultNumber"][1]', 'NVARCHAR(500)') [ResultNumber],
                B.[obj].value('x:Props[1]/x:S[@N="ResultId"][1]', 'NVARCHAR(500)') [ResultId],
                B.[obj].value('x:Props[1]/x:S[@N="ModelId"][1]', 'NVARCHAR(500)') [ModelId],
                B.[obj].value('x:Props[1]/x:S[@N="SubModelId"][1]', 'NVARCHAR(500)') [SubModelId],
                B.[obj].value('x:Props[1]/x:S[@N="RuleId"][1]', 'NVARCHAR(500)') [RuleId],
                B.[obj].value('x:Props[1]/x:S[@N="ComputerName"][1]', 'NVARCHAR(500)') [ComputerName],
                B.[obj].value('x:Props[1]/x:S[@N="Context"][1]', 'NVARCHAR(500)') [Context],
                B.[obj].value('x:Props[1]/x:S[@N="Source"][1]', 'NVARCHAR(500)') [Source],
                B.[obj].value('x:Props[1]/x:S[@N="Severity"][1]', 'NVARCHAR(500)') [Severity],
                B.[obj].value('x:Props[1]/x:S[@N="NeutralSeverity"][1]', 'NVARCHAR(500)') [NeutralSeverity],
                B.[obj].value('x:Props[1]/x:S[@N="Category"][1]', 'NVARCHAR(500)') [Category],
                B.[obj].value('x:Props[1]/x:S[@N="Title"][1]', 'NVARCHAR(500)') [Title],
                B.[obj].value('x:Props[1]/x:S[@N="Problem"][1]', 'NVARCHAR(500)') [Problem],
                B.[obj].value('x:Props[1]/x:S[@N="Impact"][1]', 'NVARCHAR(500)') [Impact],
                B.[obj].value('x:Props[1]/x:S[@N="Resolution"][1]', 'NVARCHAR(500)') [Resolution],
                B.[obj].value('x:Props[1]/x:S[@N="Compliance"][1]', 'NVARCHAR(500)') [Compliance],
                B.[obj].value('x:Props[1]/x:S[@N="Help"][1]', 'NVARCHAR(500)') [Help],
                B.[obj].value('x:Props[1]/x:S[@N="Excluded"][1]', 'NVARCHAR(500)') [Excluded]
        ) S
    WHERE   S.[ResultNumber] IS NOT NULL
        AND S.[Severity] != 'Information';
    
    • 2
  2. Sebastian Meine
    2013-01-16T07:44:14+08:002013-01-16T07:44:14+08:00

    你可以使用 powershell:

    http://technet.microsoft.com/en-us/library/hh831400.aspx

    (一直在该页的末尾)

    • 1
  3. JohnS
    2013-01-16T07:57:16+08:002013-01-16T07:57:16+08:00

    您可以尝试使用基于策略的管理并导入所有最佳实践策略,这些策略应该与 BPA 使用的策略相同。您甚至可以访问 codeplex 并获取企业策略管理框架,该框架将帮助您针对所有服务器运行此程序并将结果存储到数据库中。EPMF 还会为您提供一些对管理友好的报告。两年前,我在 PASS 峰会上就这个话题做了一次演讲。你和我的参考笔记在

    http://johnsterrett.com/presentations/intro-to-policy-based-management-and-central-management-server/

    • 1
  4. Kin Shah
    2013-05-16T10:01:31+08:002013-05-16T10:01:31+08:00

    由于您想使用 BPA,此PowerShell 脚本将为您完成这项工作。

    另一件需要注意的事情是,您可以使用下面免费提供的优秀工具来检查 SQL Server 的运行状况/最佳实践。

    1. sp_BLITZ或
    2. SQL Power 文档
    • 1

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

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

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

    • 3 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 4 个回答
  • Marko Smith

    授予用户对所有表的访问权限

    • 5 个回答
  • 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
    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
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +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