小编Mar*_*lli的帖子

如何查询 SSISDB 以找出包中的错误?

我看过这个问题 SSIS 2012 - How to Query Current Running Packages in T-SQL?

它给了我以下脚本:

SELECT
    E.execution_id
,   E.folder_name
,   E.project_name
,   E.package_name
,   E.reference_id
,   E.reference_type
,   E.environment_folder_name
,   E.environment_name
,   E.project_lsn
,   E.executed_as_sid
,   E.executed_as_name
,   E.use32bitruntime
,   E.operation_type
,   E.created_time
,   E.object_type
,   E.object_id
,   E.status
,   E.start_time
,   E.end_time
,   E.caller_sid
,   E.caller_name
,   E.process_id
,   E.stopped_by_sid
,   E.stopped_by_name
,   E.dump_id
,   E.server_name
,   E.machine_name
,   E.total_physical_memory_kb
,   E.available_physical_memory_kb
,   E.total_page_file_kb
,   E.available_page_file_kb
,   E.cpu_count
,   F.folder_id
, …
Run Code Online (Sandbox Code Playgroud)

sql-server ssis troubleshooting sql-server-2014 ssis-2014

16
推荐指数
3
解决办法
6万
查看次数

为什么我的 EXISTS 查询执行索引扫描而不是索引查找?

我正在优化一些查询。

对于下面的查询,

SET STATISTICS IO ON;
DECLARE @OrderStartDate DATETIME2 = '27 feb 2016';
DECLARE @OrderEndDate  DATETIME2 = '28 feb 2016';

SELECT  o.strBxOrderNo
        , o.sintOrderStatusID
        , o.sintOrderChannelID
        , o.sintOrderTypeID
        , o.sdtmOrdCreated
        , o.sintMarketID
        , o.strOrderKey
        , o.strOfferCode
        , o.strCurrencyCode
        , o.decBCShipFullPrice
        , o.decBCShipFinal
        , o.decBCShipTax
        , o.decBCTotalAmount
        , o.decWrittenTotalAmount
        , o.decBCWrittenTotalAmount
        , o.decBCShipOfferDisc
        , o.decBCShipOverride
        , o.decTotalAmount
        , o.decShipTax
        , o.decShipFinal
        , o.decShipOverride
        , o.decShipOfferDisc
        , o.decShipFullPrice
        , o.lngAccountParticipantID
        , CONVERT(DATE, o.sdtmOrdCreated, 120) as OrderCreatedDateConverted
FROM    tablebackups.dbo.tblBOrder o
WHERE   o.sdtmOrdCreated >= …
Run Code Online (Sandbox Code Playgroud)

performance sql-server optimization index-tuning sql-server-2014 query-performance

15
推荐指数
3
解决办法
2488
查看次数

sys.allocation_units 和 sp_spaceused 上的空间使用情况

众所周知,DMV 不保存有关页数和行数的准确信息。但是,当您更新统计数据时,我不明白为什么他们不会。

我正在开发一个监控工具,想知道每个索引和数据的磁盘大小等。最终我想找到合适的填充因子,以及其他一些东西。

The space used by my function and the old sp_spaceused differs a little bit on the space usage, but not on record count.

Can you see if there is anything missing in my select?

this is the sp_spaceused (then I convert the numbers in MB):

sp_spaceused 'tblBOrderRelationship'
go

select 318008/1024.00 AS reserved,
140208/1024.00  AS data,
177048/1024.00 AS index_size,
752/1024.00    AS unused
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

But when I run my select, code below\picture below, I get slightly different figures.

SET TRANSACTION …
Run Code Online (Sandbox Code Playgroud)

index sql-server dmv disk-space

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

使用 T-SQL 的复制监视器信息

下图显示了我目前正在调查的事务复制问题。

该图像来自复制监视器。

如何使用 T-SQL 获取此信息?

在此处输入图片说明

replication sql-server-2005 sql-server merge-replication transactional-replication

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

我的用户属于哪些 AD 组登录?

我不确定我是否为这个问题选择了正确的标题。我真正想要的是,给定一个单独的 Windows AD 用户,我想找出可以访问此服务器中特定数据库的 Windows AD 组(登录名)的列表

当我运行以下查询时

select
    name,
    principal_id,
    type,
    type_desc,
    default_schema_name,
    create_date,
    modify_date,
    owning_principal_id,
    sid,
    is_fixed_role
from sys.database_principals
Run Code Online (Sandbox Code Playgroud)

在我的服务器中

Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 2011 年 6 月 17 日 00:54:03 版权所有 (c) Windows NT 6.1(内部版本 7601:Service Pack 1)上的 Microsoft Corporation 标准版(64 位)

我得到以下结果(部分列表):

在此处输入图片说明

我需要知道特定登录名的所有权限。此登录名可以通过 AD 组访问我的服务器/数据库。

1) 从上面的列表中,我的登录名属于哪些 AD 组?

在此处输入图片说明

我一直在下面这样做,但我真的很想找出该用户所属的 AD 组(根据上图可以访问该服务器)的列表。

首先,我以相关用户身份执行

    EXECUTE AS LOGIN='mycompany\HThorne'

    DECLARE @User VARCHAR(20)
    SELECT @USER = SUBSTRING(SUSER_SNAME(), 
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
Run Code Online (Sandbox Code Playgroud)

我确保我拥有正确的凭据

    SELECT   @USER …
Run Code Online (Sandbox Code Playgroud)

sql-server permissions sql-server-2008-r2 active-directory sql-server-2014

13
推荐指数
2
解决办法
5万
查看次数

检测到 SQLHANDLE 可能的无限重新编译

我一直在 sql 错误日志上发现奇怪的错误消息:

Bocss:每小时都会发生同样的僵局——需要调查

根据以下示例,其他 SPID 的错误日志中还列出了许多重新编译:

2015年9月4日14:30:10,spid64,未知,用于SQLHANDLE 0x0200000059631A288882589E0C54B76404CAE1B97E08D3680000000000000000000000000000000000000000 PlanHandle 0x0600040059631A2860A62B654100000001000000000000000000000000000000000000000000000000000000检测到可能无限的重新编译起始偏移1038结束偏移2600的最后一个重新编译原因是2. 2015年9月4日14时三十分十秒,spid150,未知,是为SQLHANDLE 0x02000000EF886F018C4E0B163812B8B20150FE8FC7E6A06A0000000000000000000000000000000000000000 PlanHandle 0x06000400EF886F01901A816E0600000001000000000000000000000000000000000000000000000000000000起始偏移量998检测到的一个可能的无穷的重新编译结束偏移2520。最后重新编译原因是2. 2015年9月4日14:30:09,spid67,未知检测到可能无限的重新编译为SQLHANDLE 0x0200000057C4C632D9052275CFF2B683B80F29501EE91D730000000000000000000000000000000000000000 PlanHandle 0x0600040057C4C63200EAC2BE3000000001000000000000000000000000000000000000000000000000000000起始偏移1064结束偏移2652是2. 2015年9月4日14最后重新编译原因:30:09,spid163,未知,是为SQLHANDLE 0x02000000E7C7BF0E5D70DE55759C7842860272AD474D69AB0000000000000000000000000000000000000000 PlanHandle探测到一个可能无限的重新编译0x06000400E7C7BF0EF0EB68A52C00000001000000000000000000000000000000000000000000000000000000开始偏移量1028结束偏移2580的最后一个重新编译的原因是2。

是什么导致了这种情况?

看起来我没有缓存中的计划了。 在此处输入图片说明

按照这篇文章的建议 http://www.sqlservercentral.com/Forums/Topic1479420-146-1.aspx

然后作为安全措施禁用全文目录,这没有区别,所以我完全回滚了更改(删除了新对象等)。这也没什么区别,最后似乎唯一阻止它的是重新启动 SQL 实例,这立即解决了问题。

这也解决了我的问题,但是,我仍然要找出造成这种混乱的原因是什么?

sql-server execution-plan sql-server-2012 errors plan-cache

12
推荐指数
1
解决办法
8833
查看次数

如何从 SQL Server 的缓存中清除表?

我的数据库中有一些不应缓存的表。

如何告诉 SQL Server 不要缓存表的页面或如何从缓存中刷新单个表?

刷新所有缓存不是一种选择。

我正在使用 SQL Server 2008 和 SQL Server 2008 R2。

sql-server-2008 sql-server sql-server-2008-r2

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

9
推荐指数
1
解决办法
1150
查看次数

sql server 最大内存包括 SSIS?

我在以下服务器上安装了 2 个 sql server 和 SSIS 实例。

请注意 RAM 量接近 384 GB

在此处输入图片说明

在此处输入图片说明

这是我应用于 2 个实例的最大和最小内存设置。我假设两个实例将使用相同数量的资源,如果真的是这样,184,320 MB 也就是 180 GB 是设置内存的一个很好的起始数字?

我会为 SSIS 分配多少内存?

sql-server memory ssis sql-server-2014 ssis-2014

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

通过删除运算符哈希匹配内连接来提高查询性能

在尝试将下面这个问题的内容应用于我自己的情况时,如果可能的话,我对如何摆脱运算符 Hash Match (Inner Join) 感到有些困惑。

SQL Server 查询性能 - 消除对哈希匹配(内部联接)的需要

我注意到 10% 的成本,并想知道我是否可以减少它。请参阅下面的查询计划。

在此处输入图片说明

这项工作来自我今天必须调整的查询:

SELECT c.AccountCode, MIN(d.CustomerSID) 
FROM   Stage.Customer c 
INNER JOIN Dimensions.Customer d  ON c.Email = d.Email
                                  OR (
                                          c.HomePostCode = d.HomePostCode
                                       AND c.StrSurname = d.strSurname
                                                                    )
GROUP BY c.AccountCode
Run Code Online (Sandbox Code Playgroud)

添加这些索引后:

---------------------------------------------------------------------
-- Create the indexes
---------------------------------------------------------------------

CREATE NONCLUSTERED INDEX IDX_Stage_Customer_HOME_SURNAME_INCL
ON Stage.Customer(HomePostCode ,strSurname)
INCLUDE (AccountCode)
--WHERE HASEMAIL = 0
--WITH (ONLINE=ON, DROP_EXISTING = ON)
go


CREATE NONCLUSTERED INDEX IDX_Dimensions_Customer_HOME_SURNAME_INCL
ON Dimensions.Customer(HomePostCode ,strSurname)
INCLUDE (AccountCode,CustomerSID)
--WHERE HASEMAIL = …
Run Code Online (Sandbox Code Playgroud)

performance index sql-server execution-plan sql-server-2014 query-performance

9
推荐指数
1
解决办法
5万
查看次数