小编K09*_*K09的帖子

Delete 语句上的死锁

SQL Server 作业运行时出现死锁。死锁发生在一个简单的 DELETE 语句上。我原以为必须运行 SELECT/UPDATE 查询才能导致死锁?但看起来是 DELETE/DELETE 死锁...

我正在寻找的是为什么我会遇到 DELETE/DELETE 死锁。这是(据我所知)传入不同的参数。

有任何想法吗?谢谢。

deadlock-list
2014-05-20 07:30:09.66 spid25s      deadlock victim=process409048
2014-05-20 07:30:09.66 spid25s       process-list
2014-05-20 07:30:09.66 spid25s        process id=process409048 taskpriority=0 logused=0 waitresource=PAGE: 12:1:7127294 waittime=4352 ownerId=629860973 transactionname=DELETE lasttranstarted=2014-05-20T07:30:05.307 XDES=0x397219620 lockMode=U schedulerid=5 kpid=3792 status=suspended spid=150 sbid=0 ecid=3 priority=0 trancount=0 lastbatchstarted=2014-05-20T07:30:05.307 lastbatchcompleted=2014-05-20T07:30:05.307 clientapp=QSQL25 hostname=MORRIS hostpid=1528 isolationlevel=read committed (2) xactid=629860973 currentdb=12 lockTimeout=4294967295 clientoption1=671088672 clientoption2=128056
2014-05-20 07:30:09.66 spid25s         executionStack
2014-05-20 07:30:09.66 spid25s          frame procname=adhoc line=1 stmtstart=68 sqlhandle=0x020000000b887a18f75d0aa07c25a9b8630fca696aa0e5d2
2014-05-20 07:30:09.66 spid25s     DELETE FROM dbo.UserDetailsData WHERE        (Username = …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock

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

SQL Server 连接问题

我有时会收到以下错误。也许每30分钟左右。我不确定如何跟踪导致问题的原因。我认为这可能是网络问题,因为也有磁盘备份在运行。

关于从哪里开始的任何建议?谢谢!

底层提供程序在 Open 上失败。---> System.Data.SqlClient.SqlException: 已成功与服务器建立连接,但在登录前握手期间发生错误。(提供程序:SSL 提供程序,错误:0 - 等待操作超时。)---> System.ComponentModel.Win32Exception:等待操作超时

sql-server

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

恢复所有数据库脚本

我正在将 SQL Server DB 迁移到新实例。

有人告诉我,可以从系统目录中的可用备份动态构建 RESTORE 脚本。

有谁知道一个示例脚本来做到这一点?

谢谢!

sql-server scripting restore catalogs automation

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

迁移 CLR 程序集

我正在将 SQL Server 2008R2 数据库迁移到新服务器。(也是 2008R2)

服务器上有许多 CLR 程序集。这些会自动随数据库迁移还是我必须手动编写脚本?

谢谢!

sql-server migration sql-clr

7
推荐指数
2
解决办法
6427
查看次数

派生列上的 SSIS 2012 VS_ISBROKEN

我已经将 VS2008 中内置的 SSIS 包转换为在 VS2010 中打开。

我有一个未通过验证的派生列组件。它在 VS2008 中运行良好。这是派生列中使用的表达式...

FINDSTRING(
    SecurityDescription,"\n",1) > 0   
    ? SUBSTRING(SecurityDescription, 1, 
                FINDSTRING(SecurityDescription,"\n",1) - 1)  
) : SecurityDescription
Run Code Online (Sandbox Code Playgroud)

以下是我运行包时的错误...

在此处输入图片说明

错误是:

[派生列 [36]] 错误:
尝试解析表达式
[FINDSTRING](#102,"\n",1) > 0 ? [SUBSTRING](#11898,1,[FINDSTRING](#11898,"\n",1) - 1) : #102”失败并返回错误代码 0xC00470A3。
无法解析表达式。它可能包含无效元素或格式不正确。也可能存在内存不足错误。

我已经仔细检查过,SecurityDescription是一个有效的列。如果我只是添加SecurityDescription. 不知道FINDSTRING代码有什么问题。

sql-server ssis ssis-2012 ssis-expressions

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

自动增长 - 使用百分比?

最好不要对自动增长设置使用百分比文件增长吗?

以下建议对 500GB 以下的数据库使用百分比值增长,但是否建议这样做?

http://performance-expert.blogspot.ie/2012/06/tuning-autogrow-settings-of-sql-server.html

如果磁盘空间有限或无法调整数据库大小,则应将 >autogrowth 值配置为固定百分比。例如,对于 500 GB 以下的数据库,将自动增长值配置为 >10%,如果数据库超过 500 GB,则配置为固定的兆字节数。

谢谢!

更新:下面我在一些数据库上添加了 Autogrowth 的快照。对此有什么建议吗?

还有什么是预测数据库大小的最佳方法?

在此处输入图片说明

sql-server auto-growth

5
推荐指数
3
解决办法
9909
查看次数

表值函数非常慢

我有一个 TVF,调用时需要 10 秒才能运行。

但是,如果我在该 TVF 内进行查询,则只需要 1 秒。我已在此基础查询表上添加了正确的索引。

在 TVF 的执行计划中,它正在执行表扫描。我如何找出它这样做的原因?

谢谢。

询问...

select Username, Identifier 
from [dbo].Unmapped(@CustID, @StartDate, @EndDate)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

表扫描属性...

在此输入图像描述

sql-server index-tuning

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

Ola Hallengren 索引优化脚本不重建索引

我已经下载了 Ola Hallengren 的脚本并部署到主数据库。我使用下面的运行它...

EXECUTE dbo.IndexOptimize
 @Databases = 'USER_DATABASES',
 @FragmentationLow = NULL,
 @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
 @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
 @FragmentationLevel1 = 5,
 @FragmentationLevel2 = 30
Run Code Online (Sandbox Code Playgroud)

我在 SSMS 中得到了这个输出,但索引没有被重建。碎片化程度还是很高的。我错过了什么吗?

Date and time: 2015-03-01 14:07:24
Server: TestSvr
Version: 10.50.2500.0
Edition: Standard Edition (64-bit)
Procedure: [master].[dbo].[IndexOptimize]
Parameters: @Databases = 'USER_DATABASES', 
@FragmentationLow = NULL, 
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',     
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE', 
@FragmentationLevel1 = 5, 
@FragmentationLevel2 = 30, 
@PageCountLevel = 1000, @SortInTempdb = 'N', 
@MaxDOP = NULL, @FillFactor = NULL, @PadIndex = NULL, 
@LOBCompaction = 'Y', @UpdateStatistics …
Run Code Online (Sandbox Code Playgroud)

index sql-server-2008 sql-server maintenance index-tuning

4
推荐指数
1
解决办法
7461
查看次数

正在运行的 SQL 作业 - 如何终止

我运行了下面的查询,它显示了当前正在运行的作业的列表。然而,在活动监视器中,这些都没有运行。我如何验证这些是否正在运行?

我该如何杀死他们?

    select sj.name
    ,sja.*
from msdb.dbo.sysjobactivity as sja
inner join msdb.dbo.sysjobs as sj on sja.job_id = sj.job_id
where sja.start_execution_date is not null
and sja.stop_execution_date is null
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

sql-server sql-server-agent jobs

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

如何在不使用 SHRINKFILE 的情况下为操作系统释放磁盘空间?

我们的服务器管理员要求我释放 SQL 服务器上的磁盘空间,因为 SQL 数据文件所在的驱动器的使用率为 97%。

我发现了一张失控的桌子。它现在包含超过 3 亿行,所以我将设置一项工作以在一夜之间删除这些行。

  • 我有什么选择可以释放磁盘空间?
  • 删除这些行会释放空间供其他表使用吗?

我想避免 SHRINKFILE,因为不推荐。

sql-server disk-space

4
推荐指数
1
解决办法
2355
查看次数