小编Eri*_*ing的帖子

分区表上的离线索引重建

如果我使用ntexttextimage数据类型对表进行分区并使用 重建单个分区上的索引online = off,这会锁定整个表还是仅锁定有问题的分区?

sql-server partitioning sql-server-2016

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

SQL Server 中的 LOB 和二进制数据有什么区别?

谈论“LOB”和“二进制”数据时有什么区别?

就二进制数据存储在单独的文件组中而言,它是相同的,还是存在差异?

sql-server

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

在 SQL Server 2017 和 Azure SQL DB 中查找默认隔离级别

我正在阅读一本与事务和并发相关的书。在一段中提到:

  • 在本地 SQL Server 实例中,默认隔离级别是基于锁定的读取提交

下一句是:

  • SQL 数据库中的默认值是读取 - 基于行版本控制的已提交快照

我的问题是:这两句话中的“本地 SQL Server 实例”和“SQL 数据库”有什么区别?

什么是默认隔离级别,如何找到它?是否有任何特殊查询可以找出默认隔离级别?

concurrency azure-sql-database isolation-level sql-server-2017

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

在 SQL Server 中,并行性如何改变内存授予?

我听说过关于并行选择查询的内存授予的相互矛盾的事情:

  • 内存授权乘以 DOP
  • 记忆补助除以 DOP

是哪个?

sql-server parallelism memory-grant

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

更改外键的引用索引

我有这样的事情:

CREATE TABLE T1 (
    Id INT
    ...
    ,Constraint [PK_T1] PRIMARY KEY CLUSTERED [Id]
)

CREATE TABLE T2 (
    ....
    ,T1_Id INT NOT NULL
    ,CONSTRAINT [FK_T2_T1] FOREIGN KEY (T1_Id) REFERENCES T1(Id)
)
Run Code Online (Sandbox Code Playgroud)

出于性能(和死锁)原因,我在 T1 上创建了一个新索引

CREATE UNIQUE NONCLUSTERED INDEX IX_T1_Id ON T1 (Id)
Run Code Online (Sandbox Code Playgroud)

但是如果我检查哪个索引引用了 FK,就会继续引用聚集索引

select
    ix.index_id,
    ix.name as index_name,
    ix.type_desc as index_type_desc,
    fk.name as fk_name
from sys.indexes ix
    left join sys.foreign_keys fk on
        fk.referenced_object_id = ix.object_id
        and fk.key_index_id = ix.index_id
        and fk.parent_object_id = object_id('T2')
where ix.object_id = object_id('T1');
Run Code Online (Sandbox Code Playgroud)

如果我删除约束并再次创建它引用非聚集索引,但这会导致再次检查所有 …

foreign-key sql-server sql-server-2014

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

扩展事件过滤

我正在尝试使用登录名在扩展事件过滤中创建跟踪,在探查器中我们可以使用登录名进行过滤,但我在 XE 中看不到该选项。我怎么做?

sql-server extended-events

8
推荐指数
1
解决办法
3630
查看次数

8
推荐指数
1
解决办法
428
查看次数

How can I resolve a database trigger's name with built-in functions?

I have a database trigger that I use to prevent me from creating certain procedures in user databases.

It appears in sys.triggers, with an object_id, but I can't use the object_id function to find it.

SELECT OBJECT_ID(t.name, t.type) AS object_id, *
FROM   sys.triggers AS t;
Run Code Online (Sandbox Code Playgroud)

坚果

Likewise, I can find it in sys.dm_exec_trigger_stats. I can't get object_name to resolve, but object_definition does.

SELECT OBJECT_NAME(dets.object_id, dets.database_id) AS object_name,
       OBJECT_DEFINITION(dets.object_id) AS object_definition,
       *
FROM   sys.dm_exec_trigger_stats AS dets;
Run Code Online (Sandbox Code Playgroud)

坚果

Is there a …

trigger sql-server metadata ddl-trigger

8
推荐指数
2
解决办法
466
查看次数

是否可以重载 SQL Server 函数?

是否可以重载 sql server 函数?是标量,如 ltrim,还是聚合函数,如计数?

即使这是一个非常非常糟糕的主意。是否可以?

有点重复T-SQL 用户定义的函数重载?我会说它不是 100% 重复,因为那是 2005 年的版本。也许这已经改变了?

sql-server functions

8
推荐指数
1
解决办法
2536
查看次数

嵌套 CTE 在某些情况下返回不正确的结果

好的,首先让我说我从以下方面得到了这个问题:

我试图帮助找出问题,但在尝试一步一步调试代码时被难住了。我知道这个问题是由于嵌套的 CTE(因为在调试过程中,如果你将每一步 aka cteX 转储到临时表中,就会获得正确的结果)但不知道它们是如何“在幕后”工作的,我无法在外面以一种明智的方式解释它“它不起作用哟。” 我怀疑这与编译器如何尝试在运行时同时评估它们有关,但没有更多上下文我不能肯定地说。

我的问题只是试图了解它们如何在幕后工作以及它与这种情况有何关系。现在我参与其中,我只想了解这个问题,以便将来可以与之交谈并同时学习一些有趣的东西。

在这里回答的人也可以在 SO 上交叉发布并在那里回答。

代码设置:

declare @t1 TABLE (ID varchar(max),Action varchar(max), DateTime datetime );
INSERT INTO @t1
Select *
from
(
VALUES 
('w2337','Open','2020-11-06 12:28:10.000'),
('w2337','Hold','2021-06-14 14:50:59.000'),
('w2337','Open','2021-06-14 14:51:26.000'),
('w2337','Hold','2021-06-15 14:50:59.000'),
('w2337','Open','2021-06-17 14:51:26.000'),
('w2337','Open','2021-06-18 14:51:26.000')

) t (ID, Action, DateTime);

with cte1 as (
select [ID],[Action],[DateTime]
,ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) as [RegIndex]
,DENSE_RANK () OVER (ORDER BY ID) as [Index by ID]
,ROW_NUMBER() OVER (PARTITION BY ID …
Run Code Online (Sandbox Code Playgroud)

sql-server cte

8
推荐指数
2
解决办法
999
查看次数