小编Die*_*cic的帖子

配置文件死锁报告中的“*password------------”是什么意思?

在 SQL Server 2008 R2 中,我收到了几个死锁报告,输入缓冲区中有“*password------------”。看起来像是攻击,但在那种情况下,我不知道攻击的原因或类型。

(日志是由一位经验丰富的 DBA 专家生成的,并告诉我,不是我)

有谁知道它是什么?谢谢!

例子:

<?xml version="1.0"?>
<blocked-process>
  <process id="process879948" taskpriority="0" logused="0" waitresource="KEY: 5:72057602473263104 (1d69201d0ba6)" waittime="5185" ownerId="88389135" transactionname="SELECT" lasttranstarted="2012-09-25T18:11:02.507" XDES="0x1f7d2a590" lockMode="S" schedulerid="2" kpid="4552" status="suspended" spid="86" sbid="2" ecid="0" priority="0" trancount="0" lastbatchstarted="2012-09-25T18:11:02.507" lastbatchcompleted="2012-09-25T18:11:02.507" lastattention="2012-09-25T18:07:35.740" clientapp=".Net SqlClient Data Provider" hostname="IP-xxxxxxxx" hostpid="4868" loginname="sa" isolationlevel="read committed (2)" xactid="88389135" currentdb="1" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
    <executionStack>
      <frame line="14" stmtstart="374" stmtend="764" sqlhandle="0x03000500dac2967f208e4000a19d00000000000000000000"/>
      <frame line="1" stmtstart="44" sqlhandle="0x02000000632f7e131f79ec7312284505961e537a61b81be7"/>
      <frame line="1" sqlhandle="0x000000000000000000000000000000000000000000000000"/>
    </executionStack>
    <inputbuf>

*password---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   </inputbuf>
  </process>
</blocked-process>
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 deadlock profiler

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

SQL Server:聚集索引、排序和分页

在我的应用程序中,有几次我必须显示按某个字段分页和排序的结果。

例如,按姓氏排序的简单用户列表。正因为如此,因为我也有逻辑删除,而且它是一个多租户应用程序,我通常使用这样的集群索引:

CREATE CLUSTERED INDEX [idx] ON [Users]
(
     IsDeleted ASC,
     [AccountId] ASC,
     [LastName] ASC
)
Run Code Online (Sandbox Code Playgroud)

这意味着像分页一样的查询SELECT TOP(20) * FROM Users WHERE IsDeleted = 0 AND AccountId = xxx按姓氏排序。我知道它不能保证被排序,但在实践中它总是如此。

然而,在这里阅读关于聚集索引的Kimberly Tripp博客文章,她说这样做是一个可怕的想法。更糟糕的是因为 IsDeleted (BIT) 字段不允许我设置

但是,如果我将 CLUSTERED INDEX 更改为唯一 ID,则需要开始使用ORDER BY LastName,这在实践中非常慢。

我的表有几百万条记录(最多几千万条),一般使用如下:

  • 查询数据。大多数时候。
  • 批量更新/插入,其中只有修改的数据在子集下IsDeleted = 0, AccountId = xxxx(只有单个帐户的未删除数据批量更新)。

题:

这类表的推荐索引(以及如何排序)是什么?

又如对于这些类型的表将是一个调查结果表包含以下几列IsDeleted (BIT), AccountId (FK GUID), UserId (FK GUID), QuestionKey (NVARCHAR), AnswerValue (TEXT),在我的聚集键是可能(IsDeleted, AccountId, …

index sql-server data-pages clustered-index multi-tenant

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

即使在重新启动后 SQL Server 作业也卡住了

我有一个 SQL Server 代理作业卡在“进行中”。这是一个完整的备份,通常需要 30 分钟,但它需要 7 小时,而且还在增加。我重新启动了代理,然后重新启动了整个操作系统,它仍然显示“进行中”。

有什么办法可以阻止吗?

如果我运行select * from sys.dm_exec_requests,我会得到 2 行处于“正在运行”状态,一个是“SELECT”,另一行是“DBCC TABLE CHECK”。事实上,这项工作的第一步是使用 Ola Hallengren 的脚本运行数据库完整性检查。

版本:

Microsoft SQL Server 2016 (RTM-GDR) (KB4019088) - 13.0.1742.0 (X64)
2017 年 7 月 5 日 23:41:17 版权所有 (c) Windows Server 2016 Datacenter 6.3(内部版本 14393)上的 Microsoft Corporation 标准版(64 位): )(管理程序)

sql-server sql-server-agent sql-server-2016

3
推荐指数
1
解决办法
1555
查看次数