如果我使用ntext、text或image数据类型对表进行分区并使用 重建单个分区上的索引online = off,这会锁定整个表还是仅锁定有问题的分区?
谈论“LOB”和“二进制”数据时有什么区别?
就二进制数据存储在单独的文件组中而言,它是相同的,还是存在差异?
我正在阅读一本与事务和并发相关的书。在一段中提到:
下一句是:
我的问题是:这两句话中的“本地 SQL Server 实例”和“SQL 数据库”有什么区别?
什么是默认隔离级别,如何找到它?是否有任何特殊查询可以找出默认隔离级别?
concurrency azure-sql-database isolation-level sql-server-2017
我听说过关于并行选择查询的内存授予的相互矛盾的事情:
是哪个?
我有这样的事情:
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)
如果我删除约束并再次创建它引用非聚集索引,但这会导致再次检查所有 …
我正在尝试使用登录名在扩展事件过滤中创建跟踪,在探查器中我们可以使用登录名进行过滤,但我在 XE 中看不到该选项。我怎么做?
我读到只有Trivial Plans 可以是 Simple Parameterized,并且并非所有查询(即使计划是 Trivial )都可以是 Simple Parameterized。
那么为什么这个计划同时显示了全面优化和简单参数化?
sql-server execution-plan trivial-plan simple-parameterization
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 …
是否可以重载 sql server 函数?是标量,如 ltrim,还是聚合函数,如计数?
即使这是一个非常非常糟糕的主意。是否可以?
有点重复T-SQL 用户定义的函数重载?我会说它不是 100% 重复,因为那是 2005 年的版本。也许这已经改变了?
好的,首先让我说我从以下方面得到了这个问题:
我试图帮助找出问题,但在尝试一步一步调试代码时被难住了。我知道这个问题是由于嵌套的 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 ×9
concurrency ×1
cte ×1
ddl-trigger ×1
foreign-key ×1
functions ×1
memory-grant ×1
metadata ×1
parallelism ×1
partitioning ×1
trigger ×1
trivial-plan ×1