Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 事件库中是否存在任何事件,通过这些事件我们可以使用扩展事件识别碎片索引?_Sql Server_Extended Events - Fatal编程技术网

Sql server 事件库中是否存在任何事件,通过这些事件我们可以使用扩展事件识别碎片索引?

Sql server 事件库中是否存在任何事件,通过这些事件我们可以使用扩展事件识别碎片索引?,sql-server,extended-events,Sql Server,Extended Events,我是一个新的扩展事件,然而,我知道了同样通过阅读一些文章,如 我的问题是:事件库中是否有任何事件可以用来识别碎片索引 因为我只有 我正在使用SQL Server 2014 提前感谢不要直接感谢。当索引的物理顺序与逻辑顺序不匹配时,就会出现碎片。当需要将数据放在没有空间的页面上时,就会发生这种情况,从而导致页面拆分。存在页面拆分事件。但是,在一般情况下,我不会使用它来跟踪碎片。事件的存在更多是为了跟踪一次性操作的活动。如果您想查看碎片,请查看sys.dm\u db\u index\u physi

我是一个新的扩展事件,然而,我知道了同样通过阅读一些文章,如

我的问题是:事件库中是否有任何事件可以用来识别碎片索引

因为我只有

我正在使用SQL Server 2014


提前感谢

不要直接感谢。当索引的物理顺序与逻辑顺序不匹配时,就会出现碎片。当需要将数据放在没有空间的页面上时,就会发生这种情况,从而导致页面拆分。存在页面拆分事件。但是,在一般情况下,我不会使用它来跟踪碎片。事件的存在更多是为了跟踪一次性操作的活动。如果您想查看碎片,请查看sys.dm\u db\u index\u physical\u stats。

要添加到的答案,您可以使用扩展事件跟踪页面拆分,从而间接跟踪碎片。查看Paul Randal撰写的精彩文章,熟悉LOP_DELETE_SPLIT log操作,然后创建一个如下所示的会话:

CREATE EVENT SESSION [Page Splits] ON SERVER 
ADD EVENT sqlserver.transaction_log(SET collect_database_name = 1
   WHERE (operation = $LOP_DELETE_ID$) ) --LOP_DELETE_SPLIT*
ADD TARGET package0.event_file(SET FILENAME = N'PageSplitsOutput.xel',MAX_FILE_SIZE = 200, MAX_ROLLOVER_FILES = 2, INCREMENT = 20)
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0     KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF);
GO
并用以下结果填充
$LOP\u DELETE\u ID$

SELECT *
FROM sys.dm_xe_map_values
WHERE name = 'log_op'
AND map_value = 'LOP_DELETE_SPLIT';