syncro
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
USE Arizona;
|
||||
GO
|
||||
|
||||
DELETE FROM upd.IA_IndexesAlignementActions
|
||||
DELETE FROM upd.IA_IndexAlignementActions
|
||||
WHERE IA_schema_name = 'dbo.Criteria';
|
||||
|
||||
BEGIN TRANSACTION;
|
||||
WITH ColInfo
|
||||
AS (SELECT TblName = o.name,
|
||||
SchemaTbl = s.name + '.' + o.name,
|
||||
IndexName = i.name,
|
||||
AS (SELECT TblName = [o].[name],
|
||||
SchemaTbl = s.name + '.' + [o].[name],
|
||||
IndexName = [i].[name],
|
||||
s.name AS schemaName,
|
||||
IsPrimaryKey = i.is_primary_key,
|
||||
IsUniqueConstraint = i.is_unique_constraint,
|
||||
@@ -21,29 +21,29 @@ AS (SELECT TblName = o.name,
|
||||
END AS is_clustered,
|
||||
ColName = c.name,
|
||||
IsComputedCol = c.is_computed,
|
||||
IsIncludedCol = ic.is_included_column,
|
||||
ic.key_ordinal,
|
||||
IsIncludedCol = [ic].is_included_column,
|
||||
[ic].key_ordinal,
|
||||
FilterDefinition = i.filter_definition,
|
||||
i.object_id,
|
||||
i.ignore_dup_key,
|
||||
i.fill_factor,
|
||||
i.is_padded
|
||||
FROM sys.objects o
|
||||
JOIN sys.schemas s
|
||||
FROM [sys].objects o
|
||||
JOIN [sys].schemas s
|
||||
ON o.schema_id = s.schema_id
|
||||
JOIN sys.columns c
|
||||
JOIN [sys].columns c
|
||||
ON o.object_id = c.object_id
|
||||
JOIN sys.indexes i
|
||||
JOIN [sys].indexes i
|
||||
ON c.object_id = i.object_id
|
||||
JOIN sys.index_columns ic
|
||||
ON i.index_id = ic.index_id
|
||||
AND o.object_id = ic.object_id
|
||||
AND c.column_id = ic.column_id
|
||||
WHERE o.name = 'criteria'
|
||||
JOIN [sys].index_columns ic
|
||||
ON i.index_id = [ic].index_id
|
||||
AND o.object_id = [ic].object_id
|
||||
AND c.column_id = [ic].column_id
|
||||
WHERE [o].[name] = 'criteria'
|
||||
AND s.name = 'dbo')
|
||||
SELECT DISTINCT
|
||||
'
|
||||
INSERT INTO arizona.upd.IA_IndexesAlignementActions
|
||||
INSERT INTO arizona.upd.IA_IndexAlignementActions
|
||||
(
|
||||
IA_executionDate,
|
||||
IA_schema_name,
|
||||
@@ -65,16 +65,17 @@ INSERT INTO arizona.upd.IA_IndexesAlignementActions
|
||||
IA_actualColumns,
|
||||
IA_actualIncludedColumns,
|
||||
IA_statusMsg,
|
||||
IA_index_options
|
||||
IA_index_options,
|
||||
IA_reference
|
||||
)
|
||||
SELECT
|
||||
NULL as IA_executionDate,
|
||||
''' + x.schemaName + ''' as IA_schema_name,
|
||||
''' + x.TblName + ''' as IA_table_name,
|
||||
''' + [x].schemaName + ''' as IA_schema_name,
|
||||
''' + [x].TblName + ''' as IA_table_name,
|
||||
''' + c.IndexColumns + ''' as IA_columns_name,
|
||||
0 as IA_is_clustered,
|
||||
' + CASE
|
||||
WHEN x.IsUnique = 0 THEN
|
||||
WHEN [x].IsUnique = 0 THEN
|
||||
'0'
|
||||
ELSE
|
||||
'1'
|
||||
@@ -87,7 +88,7 @@ SELECT
|
||||
END + ' as IA_included_columns,
|
||||
0 as IA_is_to_be_deleted,
|
||||
0 as IA_is_to_be_recreated,
|
||||
''' + x.IndexName
|
||||
''' + [x].IndexName
|
||||
+ ''' as IA_expected_index_name,
|
||||
NULL as IA_foundIndexName,
|
||||
0 as IA_wasIndexFound,
|
||||
@@ -100,28 +101,29 @@ SELECT
|
||||
NULL as IA_actualIncludedColumns,
|
||||
NULL as IA_statusMsg,
|
||||
''' + CASE
|
||||
WHEN INDEXPROPERTY(x.object_id, x.IndexName, 'IsStatistics') = 1 THEN
|
||||
WHEN INDEXPROPERTY([x].object_id, [x].IndexName, 'IsStatistics') = 1 THEN
|
||||
'STATISTICS_NORECOMPUTE = ON, '
|
||||
ELSE
|
||||
'STATISTICS_NORECOMPUTE = OFF, '
|
||||
END + CASE
|
||||
WHEN x.ignore_dup_key = 1 THEN
|
||||
WHEN [x].ignore_dup_key = 1 THEN
|
||||
'IGNORE_DUP_KEY = ON, '
|
||||
ELSE
|
||||
'IGNORE_DUP_KEY = OFF, '
|
||||
END + CASE
|
||||
WHEN x.is_padded = 1 THEN
|
||||
WHEN [x].is_padded = 1 THEN
|
||||
'PAD_INDEX = ON,'
|
||||
ELSE
|
||||
''
|
||||
END + 'SORT_IN_TEMPDB = OFF, FILLFACTOR =' + CAST(x.fill_factor AS VARCHAR(3))
|
||||
+ ''' as IA_index_options
|
||||
END + 'SORT_IN_TEMPDB = OFF, FILLFACTOR =' + CAST([x].fill_factor AS VARCHAR(3))
|
||||
+ ''' as IA_index_options,
|
||||
NULL as IA_reference
|
||||
WHERE NOT EXISTS(
|
||||
SELECT 1
|
||||
FROM arizona.upd.IA_IndexesAlignementActions s
|
||||
FROM arizona.upd.IA_IndexAlignementActions s
|
||||
WHERE s.IA_executionDate IS NULL
|
||||
AND s.IA_schema_name = ''' + x.schemaName + '''
|
||||
AND s.IA_table_name = ''' + x.TblName + '''
|
||||
AND s.IA_schema_name = ''' + [x].schemaName + '''
|
||||
AND s.IA_table_name = ''' + [x].TblName + '''
|
||||
AND s.IA_columns_name = ''' + c.IndexColumns + '''
|
||||
' + CASE
|
||||
WHEN ci.IncludedColumns IS NOT NULL THEN
|
||||
@@ -131,37 +133,37 @@ WHERE NOT EXISTS(
|
||||
END + '
|
||||
)
|
||||
' AS cmd,
|
||||
x.IndexName,
|
||||
[x].IndexName,
|
||||
c.IndexColumns,
|
||||
ci.IncludedColumns
|
||||
FROM ColInfo x
|
||||
CROSS APPLY
|
||||
(
|
||||
SELECT IndexColumns = STUFF(sq.strXML, 1, 2, '')
|
||||
SELECT IndexColumns = STUFF([sq].strXML, 1, 2, '')
|
||||
FROM
|
||||
(
|
||||
SELECT ', ' + ISNULL(x2.ColName, '')
|
||||
SELECT ', ' + ISNULL([x2].ColName, '')
|
||||
FROM ColInfo x2
|
||||
WHERE x.TblName = x2.TblName
|
||||
AND x.schemaName = x2.schemaName
|
||||
AND x.IndexName = x2.IndexName
|
||||
AND x2.IsIncludedCol = 0
|
||||
ORDER BY x2.key_ordinal
|
||||
WHERE [x].TblName = [x2].TblName
|
||||
AND [x].schemaName = [x2].schemaName
|
||||
AND [x].IndexName = [x2].IndexName
|
||||
AND [x2].IsIncludedCol = 0
|
||||
ORDER BY [x2].key_ordinal
|
||||
FOR XML PATH('')
|
||||
) sq(strXML)
|
||||
) c
|
||||
OUTER APPLY
|
||||
(
|
||||
SELECT IncludedColumns = STUFF(sq.strXML, 1, 2, '')
|
||||
SELECT IncludedColumns = STUFF([sq].strXML, 1, 2, '')
|
||||
FROM
|
||||
(
|
||||
SELECT ', ' + ISNULL(x2.ColName, '')
|
||||
SELECT ', ' + ISNULL([x2].ColName, '')
|
||||
FROM ColInfo x2
|
||||
WHERE x.TblName = x2.TblName
|
||||
AND x.schemaName = x2.schemaName
|
||||
AND x.IndexName = x2.IndexName
|
||||
AND x2.IsIncludedCol = 1
|
||||
ORDER BY x2.key_ordinal
|
||||
WHERE [x].TblName = [x2].TblName
|
||||
AND [x].schemaName = [x2].schemaName
|
||||
AND [x].IndexName = [x2].IndexName
|
||||
AND [x2].IsIncludedCol = 1
|
||||
ORDER BY [x2].key_ordinal
|
||||
FOR XML PATH('')
|
||||
) sq(strXML)
|
||||
) ci;
|
||||
|
||||
Reference in New Issue
Block a user