小编Sup*_*ral的帖子

平行计划选择

我有一个奇怪的查询计划问题。我有两个数据库(我们称它们为 DB1 和 DB2),它们都位于同一个 SQL-Server 实例中并且具有相同的架构。在那里,我们有几个表,dbo.CostCard其中有 43258326 行,并且dbo.CostType两个数据库都有 150 行。

过去几周,我们一直在针对 DB1 进行一些应用程序测试。作为这些测试的结果,两个表的数据都发生了变化。目前,表dbo.CostCard增加到43379268(增加120942行),表dbo.CostType增加到199(增加49行)。我们还实施了一个维护策略,该策略使用逻辑来根据碎片重新组织/重建索引,并在数据发生更改时更新统计信息,我们使用完整扫描进行更新。

目前,只有 DB1 具有此维护例程设置,我们注意到两个表的统计信息和索引都已正确更新。到现在为止还挺好!

现在到了奇怪的部分。我们有一个相当简单的声明,我们注意到性能下降非常大。这是声明:

SELECT DISTINCT TOP 100
    n1t1.Description
FROM
    CostCard AS n0t0
JOIN CostType AS n1t1
    ON ( n0t0.CostType ) = ( n1t1.Code )
WHERE
    ( ( n1t1.Description ) LIKE ( '%legal research%' ) )
    AND ( ( n1t1.Description ) IS NOT NULL )
ORDER BY
    n1t1.Description
Run Code Online (Sandbox Code Playgroud)

我们注意到查询优化器正在为 DB1 创建一个串行计划(我们已经重新编译了很多次),我们知道统计信息和索引正在定期更新,并且正在使用并行计划(更好的计划,是的,我们也重新编译了很多次)用于过去几个月一直闲置的 DB2 !!!

这怎么可能?在过去的几周里,我一直在试图解决这个问题,但已经没有想法了。有人可以在这里解释一下吗?

PS:我附上了一个包含所有信息的压缩文件,包括查询计划和统计信息。

https://dl.dropboxusercontent.com/u/72497299/Terrible%20Bad%20Query%20Plan.zip

谢谢,真的,非常感谢任何帮助!!!

sql-server parallelism execution-plan sql-server-2008-r2

6
推荐指数
1
解决办法
630
查看次数

帮助将 SQL 查询转换为 XML 输出

我有以下查询:

SELECT    
    [ID] AS [NewID]
    , (
       CASE WHEN LEN([MiddleName]) > 0 THEN
          [LastName] + ', ' + [FirstName] + ' ' + LEFT([MiddleName],1) + '.'
       ELSE
          [LastName] + ', ' + [FirstName]
       END
    ) AS [Name]
    , [Title] AS [ProfTitle]
    , CONVERT(CHAR(10),[DepartureDate],111) AS [BorDepart]
    , [LocationOfficeNumber] AS [OfficePhone]
    , [Location]
    , [LocationSection] AS [Sec]
    , [PracticeGroup] AS [PracticeTL]
    , [Email]         
FROM [dbo].[Borrowers]
Run Code Online (Sandbox Code Playgroud)

有了这个,我想知道如何编写一个转换为这个输出的 FOR XML 查询:

<sydney>
    <import>
        <template id="Borrower" name="Borrowers">
            <record searchfield="NewID" searchvalue="NewID">
                <field id="NewID">
                    <![CDATA[NEWID]]>
                </field>                
                <field …
Run Code Online (Sandbox Code Playgroud)

xml sql-server t-sql

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