标签: sql-server

SQL Server 如何确定选择表时锁定的顺序?

我有两个存储过程在系统负载时会死锁。Proc A 正在从一个表中选择,而 Proc B 正在插入同一个表中。锁图显示 Proc A 有一个 S 模式页锁,而 Proc B 想要一个 IX 模式锁,但是 Proc A 正在等待另一个页面的 S 模式页锁,而 Proc B 已经有一个 IX 模式页锁.

显然,这可以通过确保两个查询以相同的顺序锁定表中的页面来解决,但我不知道如何做到这一点。

我的问题是:在执行 INSERT 和 SELECT 时,SQL Server 如何确定锁定页面的顺序以及如何修改此行为?

sql-server deadlock locking

10
推荐指数
1
解决办法
1374
查看次数

事务日志和二进制日志有什么区别?

来自 SQL Server 商店,我现在使用 MySQL,我很好奇。

MySQL的二进制日志和MSSQL的事务日志有什么区别?

从目前的前景来看,似乎每个 MySQL 实例只有一个二进制日志,而不是 MSSQL 中每个数据库的事务日志。

mysql sql-server transaction-log

10
推荐指数
1
解决办法
7074
查看次数

重新连接镜像服务器 SQL Server 2008 R2

故障转移服务器具有状态(镜像、断开连接、恢复中),主体服务器具有状态(主体、断开连接)。

重新连接这些服务器的过程是什么?

sql-server mirroring sql-server-2008-r2

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

将数据库缩小到其初始大小以下

我有一个 SQL Server 2005 开发数据库,​​它是一个 30GB 的 live 副本。我们删除了一些开发中不需要的数据,这使得使用的数据文件空间降到了 20GB。所以我们有大约 33% 未使用。

我需要回收空间,这将允许我们在服务器上拥有第二个开发数据库(基于缩减版本);但是,我无法收回空间,我已完成以下操作:

没有喜悦。我尝试进行备份,创建一个初始大小较低的新数据库,然后恢复,但初始大小被覆盖时并不高兴。也试过:

ALTER DATABASE SMS2HazSub MODIFY FILE (NAME = 'SMS2_Data', SIZE = 20000) 
Run Code Online (Sandbox Code Playgroud)

这错误,说:

修改文件失败。指定大小小于当前大小。

我尝试了 20800,然后一直上升到 29000(29GB),但它仍然不让我改变它。

完成了收缩,然后将恢复模式从FULLSIMPLE和再更改回来。没有喜悦。

我认为这与某些TEXT领域有关。我们在整个系统中大约有 6 个。因此,作为测试,我将它们全部删除,然后对文件进行了缩小,但仍然没有变化。

剩下的唯一选择是将数据重新导入另一个数据库。这是不切实际的,因为它必须在实时数据库上完成,这会带来太多风险。我们半定期地获取实时数据库的副本并覆盖开发/测试。我们有大约 500 张桌子。我想要一种不会将数据导出到新数据库的风险的方法。

我尝试将数据移动到另一个文件,它复制了除 5% 之外的所有数据。这就是导致我尝试删除所有文本列的原因。

服务器处于兼容模式 90,但为 SP2。我现在已经完成了以下 3 次:重新索引所有表、备份数据库、收缩文件、收缩数据库。还是没有快乐。

EXECUTE sp_spaceused 返回:

database_name   database_size   unallocated space
SMS2Tests       31453.94 MB     13903.16 MB

reserved …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 sql-server shrink

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

为什么微软在 SQL Server 上杀死了“English Query”?

鉴于被苹果以 2 亿美元收购的自然语言用户界面Siri的流行,我想知道是否有人知道微软为什么在 SQL Server 上杀死了“English Query”

sql-server

10
推荐指数
1
解决办法
2755
查看次数

为什么“Select * into targettable from sourcetable”比“insert into targettable select * from sourcetable”快

这个标题是个问题。我很想知道答案。有人告诉

选择进入最低限度地登录简单恢复模型数据库......我根本没有进入它。

摘自微软:

SELECT...INTO 的日志记录量取决于对数据库有效的恢复模型。在简单恢复模型或大容量日志恢复模型下,批量操作的日志记录最少。通过最少的日志记录,使用 SELECT... INTO 语句比创建表然后使用 INSERT 语句填充表更有效

寻求帮助

谢谢

sql-server

10
推荐指数
1
解决办法
4642
查看次数

在哪里可以找到 MySQL、SQL Server 和 Oracle 的示例数据库?

我想试验 3 个大型数据库管理系统。为此目的,为每个数据库使用相同的数据库(相同的表等)会很酷。

在哪里可以找到为 MySQL、MSSQL 和 Oracle 创建相同测试数据库的 sql 脚本?

mysql oracle sql-server feature-comparison

10
推荐指数
1
解决办法
7300
查看次数

将某些阿拉伯字符视为相同

在阿拉伯语中,我们有这样的字符?(alef) 和 ? (alef 与 hamza)。

用户可以互换地编写它们,我们希望可以互换地搜索它们。SQL Server 将它们视为单独的字符。如何让 SQL 将它们视为相同的字符?

我想更换任何?(alef 与 hamza)与 ? (alef) 在插入时,但我们有很多阿拉伯语的替代品,不仅仅是 ? (alef) 和 ? (alef 与 hamza)。

我试过了Arabic_CI_ASArabic_CI_AI但这并不能解决问题。

这是一个重新生成问题的脚本:

CREATE TABLE [dbo].[TestTable] (
    [ArabicChars] [nvarchar](50) NOT NULL,

    CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED 
    (
       [ArabicChars] ASC
    )
) ON [PRIMARY];


INSERT INTO TestTable values (N'????');
INSERT INTO TestTable values (N'????');

SELECT * 
FROM TestTable 
WHERE ArabicChars like N'?%';
Run Code Online (Sandbox Code Playgroud)

结果是:

ArabicChars 

????

(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

所需的结果将是我们插入的两行。

sql-server collation

10
推荐指数
1
解决办法
9347
查看次数

镜像和故障转移集群之间有什么区别,什么时候推荐每个集群?

镜像和故障转移群集之间的主要区别是什么?

每个人解决什么样的问题,在什么样的场景中推荐每个人?

sql-server clustering mirroring failover high-availability

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

SQL Server 基线测试的最终步骤列表?

在为使用 SQL Server 的应用程序运行性能测试/基线之前,我希望能够将实例设置为“干净”状态,而无需重新启动实例。我倾向于遵循一些步骤,但我想构建一个按正确顺序排列的明确列表,并且没有多余的步骤。

此步骤列表是否完成将 SQL Server 设置为“干净”状态?

顺序是否合乎逻辑/正确?

有没有多余的步骤?

CHECKPOINT              -- Write all dirty pages

DBCC DROPCLEANBUFFERS   -- All should be clean after checkpoint?

DBCC FREEPROCCACHE      -- Clear the plan cache

DBCC FREESYSTEMCACHE    -- Is this necessary after FREEPROCCACHE?

DBCC FREESESSIONCACHE   -- May not be necessary if distributed queries aren't used, but want to catch all scenarios

EXEC SP_UPDATESTATS     -- Refresh stats

'BEGIN TESTING!'
Run Code Online (Sandbox Code Playgroud)

performance sql-server dbcc cache performance-testing

10
推荐指数
1
解决办法
1092
查看次数