DECLARE @db_id SMALLINT;
DECLARE @object_id INT;
SET @db_id = DB_ID(N'NombreDb');
SET @object_id = OBJECT_ID(N'NOmbreTabla');
SELECT * FROM sys.dm_db_index_physical_stats(@db_id, @object_id, NULL, NULL , 'LIMITED');
SELECT
object_id AS objectid,
index_id AS indexid,
partition_number AS partitionnum,
avg_fragmentation_in_percent AS frag
FROM sys.dm_db_index_physical_stats (@db_id, @object_id, NULL , NULL, 'LIMITED')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
DECLARE @schemaname nvarchar(130);
DECLARE @objectname nvarchar(130);
DECLARE @indexname nvarchar(130);
DECLARE @partitionnum bigint;
DECLARE @partitions bigint;
DECLARE @partitioncount bigint;
DECLARE @objectid int;
DECLARE @indexid int;
DECLARE @command nvarchar(4000);
DECLARE @pFrag INT
set @objectid =757577737
set @indexid=17
SELECT @objectname = QUOTENAME(o.name), @schemaname = QUOTENAME(s.name)
FROM sys.objects AS o
JOIN sys.schemas as s ON s.schema_id = o.schema_id
WHERE o.object_id = @objectid;
SELECT @indexname = QUOTENAME(name)
FROM sys.indexes
WHERE object_id = @objectid AND index_id = @indexid;
SELECT @partitioncount = count (*)
FROM sys.partitions
WHERE object_id = @objectid AND index_id = @indexid;
select @objectname,@schemaname,@indexname,@partitioncount
SELECT
@pFrag=avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (12, 757577737, @indexid , NULL, 'LIMITED')
WHERE avg_fragmentation_in_percent > 10.0 AND index_id > 0;
SELECT @indexname AS Nombre ,@pFrag Fragmentacion
IF @pFrag>30
BEGIN
IF CHARINDEX('PK',@indexname,0)=0
BEGIN
SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REBUILD with(ONLINE = ON)';
END
END
ELSE
BEGIN
IF CHARINDEX('PK',@indexname,0)=0
SET @command = N'ALTER INDEX ' + @indexname + N' ON ' + @schemaname + N'.' + @objectname + N' REORGANIZE with(ONLINE = ON)';
END
--
select @command;
ALTER INDEX [IX_SMOUTBOX_DATE_CLIENT] ON [dbo].[SmsOutBox] REORGANIZE with(ONLINE = ON)
--DECLARE @document VARCHAR(100)
--SELECT @document = 'Reflectors are vital safety' +
-- ' components of your bicycle.';
--SELECT CHARINDEX('X', @document, 5);