From 55c5554fa313b02444008d07e198e5d89935adc4 Mon Sep 17 00:00:00 2001 From: Thierry Schork Date: Wed, 26 Apr 2023 16:04:26 +0200 Subject: [PATCH] sync --- DBG - get all indexes of a tables size.sql | 9 + DBG - index infos.sql | 136 ++++++++++ EXPLOIT - suspect database.sql | 12 + .../v15/.ssms_suo | Bin 0 -> 13312 bytes ...- Triafin SSRS report performances.ssmssln | 21 ++ ...iafin SSRS report performances.ssmssqlproj | 9 + .../v15/.ssms_suo | Bin 0 -> 30720 bytes .../OCTPDBA-565 manage index 23.2.ssmssln | 22 ++ .../OCTPDBA-565 manage index 23.2.ssmssqlproj | 52 ++++ .../centrale.sql | 175 +++++++++++++ .../OCTPDBA-565 manage index 23.2/desc.txt | 232 ++++++++++++++++++ .../pharmacies.sql | 70 ++++++ .../revert central.sql | 89 +++++++ xe_host_app_query.viewsetting | 21 ++ 14 files changed, 848 insertions(+) create mode 100644 DBG - get all indexes of a tables size.sql create mode 100644 DBG - index infos.sql create mode 100644 EXPLOIT - suspect database.sql create mode 100644 OCTPDBA-494 - Triafin SSRS report performances/.vs/OCTPDBA-494 - Triafin SSRS report performances/v15/.ssms_suo create mode 100644 OCTPDBA-494 - Triafin SSRS report performances/OCTPDBA-494 - Triafin SSRS report performances.ssmssln create mode 100644 OCTPDBA-494 - Triafin SSRS report performances/OCTPDBA-494 - Triafin SSRS report performances/OCTPDBA-494 - Triafin SSRS report performances.ssmssqlproj create mode 100644 OCTPDBA-565 manage index 23.2/.vs/OCTPDBA-565 manage index 23.2/v15/.ssms_suo create mode 100644 OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2.ssmssln create mode 100644 OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2.ssmssqlproj create mode 100644 OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/centrale.sql create mode 100644 OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/desc.txt create mode 100644 OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/pharmacies.sql create mode 100644 OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/revert central.sql create mode 100644 xe_host_app_query.viewsetting diff --git a/DBG - get all indexes of a tables size.sql b/DBG - get all indexes of a tables size.sql new file mode 100644 index 0000000..76ef334 --- /dev/null +++ b/DBG - get all indexes of a tables size.sql @@ -0,0 +1,9 @@ +SELECT + i.name AS IndexName, + SUM(s.used_page_count) * 8 /1024 AS IndexSizeMB +FROM sys.dm_db_partition_stats AS s +JOIN sys.indexes AS i +ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id +WHERE s.[object_id] = object_id('dbo.document_line') +GROUP BY i.name +ORDER BY i.name \ No newline at end of file diff --git a/DBG - index infos.sql b/DBG - index infos.sql new file mode 100644 index 0000000..cc383a2 --- /dev/null +++ b/DBG - index infos.sql @@ -0,0 +1,136 @@ +;WITH ColInfo + AS (SELECT TblName = o.name, + SchemaTbl = s.name + '.' + o.name, + IndexName = i.name, + IsPrimaryKey = [i].[is_primary_key], + IsUniqueConstraint = [i].[is_unique_constraint], + IsUnique = [i].[is_unique], + ColName = c.name, + IsComputedCol = [c].[is_computed], + IsIncludedCol = [ic].[is_included_column], + [ic].[key_ordinal], + FilterDefinition = [i].[filter_definition], + i.[index_id], + crlf = CHAR(13) + CHAR(10), + crlfgo = ';' + CHAR(13) + CHAR(10) + 'GO' + CHAR(13) + CHAR(10), + [o].[object_id] + FROM sys.objects o + INNER JOIN sys.schemas s + ON o.schema_id = s.schema_id + INNER JOIN sys.columns c + ON o.object_id = c.object_id + INNER JOIN sys.indexes i + ON c.object_id = i.object_id + INNER 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 s.name = 'dbo' + AND o.name = 'item_key' +--AND i.filter_definition IS NOT NULL +) +SELECT DISTINCT [x].[TblName], + [x].[IndexName], + [x].[index_id], + [x].[IsPrimaryKey], + [x].[IsUniqueConstraint], + [x].[IsUnique], + --,size.IndexSizeKB + [c].[IndexColumns], + [ci].[IncludedColumns], + [cc].[ComputedColumns], + [x].[FilterDefinition], + [sz].[IndexSizeMB], + [us].[Reads], + [us].[Writes], + DropCreateSQL = [x].[crlf] + '-- ' + x.IndexName + [x].[crlf] + + --check drop + 'IF INDEXPROPERTY(OBJECT_ID(''' + [x].[SchemaTbl] + '''), ''' + x.IndexName + + ''' , ''IndexID'' ) IS NOT NULL BEGIN;' + [x].[crlf] + + CASE + WHEN [x].[IsPrimaryKey] = 1 THEN NULL + WHEN [x].[IsUniqueConstraint] = 1 THEN + --drop statement + ' ALTER TABLE ' + [x].[SchemaTbl] + ' DROP CONSTRAINT ' + x.IndexName + ';' + + [x].[crlf] + 'END' + [x].[crlfgo] + --check create + + 'IF INDEXPROPERTY(OBJECT_ID(''' + [x].[SchemaTbl] + '''), ''' + x.IndexName + + ''' , ''IndexID'' ) IS NULL BEGIN;' + [x].[crlf] + + --create statement + +' ALTER TABLE ' + + [x].[SchemaTbl] + ' ADD CONSTRAINT ' + x.IndexName + ' UNIQUE (' + + [c].[IndexColumns] + ');' + [x].[crlf] + 'END' + [x].[crlfgo] + ELSE + --drop statement + ' DROP INDEX ' + [x].[SchemaTbl] + '.' + x.IndexName + ';' + [x].[crlf] + + 'END' + [x].[crlfgo] + --check create + + 'IF INDEXPROPERTY(OBJECT_ID(''' + [x].[SchemaTbl] + '''), ''' + x.IndexName + + ''' , ''IndexID'' ) IS NULL BEGIN;' + [x].[crlf] + + --create statement + +' CREATE ' + + CASE + WHEN [x].[IsUnique] = 1 THEN 'UNIQUE ' + ELSE '' END + 'INDEX ' + x.IndexName + ' ON ' + [x].[SchemaTbl] + '(' + + [c].[IndexColumns] + ')' + + ISNULL(' INCLUDE(' + [ci].[IncludedColumns] + ')', '') + + ISNULL(' WHERE ' + [x].[FilterDefinition], '') + ';' + [x].[crlf] + 'END' + + [x].[crlfgo] END + FROM ColInfo x + OUTER APPLY ( SELECT IndexColumns = STUFF([sq].[strXML], 1, 2, '') + FROM ( SELECT ', ' + ISNULL([x2].[ColName], '') + FROM ColInfo x2 + WHERE x.TblName = [x2].[TblName] + 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, '') + FROM ( SELECT ', ' + ISNULL([x2].[ColName], '') + FROM ColInfo x2 + WHERE x.TblName = [x2].[TblName] + AND x.IndexName = [x2].[IndexName] + AND [x2].[IsIncludedCol] = 1 + ORDER BY x2.key_ordinal + FOR XML PATH('')) sq(strXML) ) ci + OUTER APPLY ( SELECT ComputedColumns = STUFF([sq].[strXML], 1, 2, '') + FROM ( SELECT ', ' + ISNULL([x2].[ColName], '') + FROM ColInfo x2 + WHERE x.TblName = [x2].[TblName] + AND x.IndexName = [x2].[IndexName] + AND [x2].[IsComputedCol] = 1 + ORDER BY x2.key_ordinal + FOR XML PATH('')) sq(strXML) ) cc + OUTER APPLY ( SELECT tblName = o.name, + o.type, + i.name AS [IndexName], + i.index_id, + [s].[user_seeks] + [s].[user_scans] + [s].[user_lookups] AS [Reads], + [s].[user_updates] AS [Writes], + i.type_desc AS [IndexType], + [i].[fill_factor] AS [FillFactor], + [i].[has_filter], + [i].[filter_definition], + [s].[last_user_scan], + [s].[last_user_lookup], + [s].[last_user_seek] + FROM sys.dm_db_index_usage_stats AS s WITH (NOLOCK) + INNER JOIN sys.indexes AS i WITH (NOLOCK) + ON s.object_id = i.object_id + INNER JOIN sys.objects o WITH (NOLOCK) + ON s.object_id = o.object_id + WHERE o.type = 'U' -- user table + AND i.index_id = s.index_id + AND [s].[database_id] = DB_ID() + AND o.name = x.TblName + AND i.name = x.IndexName) us + OUTER APPLY ( SELECT [i].[name] AS IndexName, + SUM([s].[used_page_count]) * 8 / 1024 AS IndexSizeMB + FROM sys.dm_db_partition_stats AS s + JOIN sys.indexes AS i + ON s.[object_id] = i.[object_id] + AND s.index_id = i.index_id + WHERE s.[object_id] = x.[object_id] --OBJECT_ID('dbo.document_line') + AND [i].[name] = x.IndexName + GROUP BY [i].[name]) sz +ORDER BY [x].[index_id]; diff --git a/EXPLOIT - suspect database.sql b/EXPLOIT - suspect database.sql new file mode 100644 index 0000000..c453d7d --- /dev/null +++ b/EXPLOIT - suspect database.sql @@ -0,0 +1,12 @@ +--step 1, go in emergency mode +ALTER database [ActivePos_write] set SINGLE_USER +Alter database [ActivePos_write] SET EMERGENCY + +--step 2, do a checkdb +DBCC CHECKDB ('ActivePos_write') WITH NO_INFOMSGS, ALL_ERRORMSGS + +--if no errors reported or index corruption, do a repair with data loss +DBCC CHECKDB ('ActivePos_write', REPAIR_ALLOW_DATA_LOSS) + +--set the db back in multi user +ALTER database [ActivePos_write] set multi_user \ No newline at end of file diff --git a/OCTPDBA-494 - Triafin SSRS report performances/.vs/OCTPDBA-494 - Triafin SSRS report performances/v15/.ssms_suo b/OCTPDBA-494 - Triafin SSRS report performances/.vs/OCTPDBA-494 - Triafin SSRS report performances/v15/.ssms_suo new file mode 100644 index 0000000000000000000000000000000000000000..59ba87600bf71de759bb9ae0a6cdc4bec851854c GIT binary patch literal 13312 zcmeHN&2Jk;6d$(~($Ydpp_I~sp(PaPhV|NU?6jczlY$a8YLXUJmcU<0(>fpZCTU8O ziV7hF2LuN|;sOY9Kp+rsLHq?A5ammVUQhvvBS^g=M8oel>#;X(Y_FX(O;kT?c4ud1 z_q};D@6B)C_`CC)F248Kw%06jkauMo@JM3XJ=Ww8VT7Z ztso5?5~KKy3%7`g5#00QG>6hLZ4qmVW4@-wTkdDJ8iA<`uJvg5JTIUga2yrK#gpJZ zfLu&WSrrbiTQDQ->UQ#)2aPa&B`N;oJ0^0FATP2=z0gGxDO+e)>9$L(a@~tcB}1il z_VQct@GA`mbWluyOHK@-|4f56&QX-)t!5Rk16-}oX}u>bv> zNFZf@OKJZ;@NL?^RDaQ~>AUF%lpWLlHzBEM%X0dG`Rt$mN42B^{XfT3J=^cJAFFHLG|f{^7nu`J9Rk zZ559oPi#Xv46c1r2RV_#eF_o~|4l-kbWQZfxx30mpGY|CwEqvIEp3fN+)0#~2lh(> z2gboShi9|6GG-yixQIYD;`6M$mbB6d{TxdtCNd(+D0wy#ugs-2f$Vt61 z_fGvQ-cI{(=iiV15OpU-2HZ1cy)N~0F4xi%^?x<_*V>P?fcuQ<@xhXJf^h`E}9Ofd1(( zxK@%B{A#$R7&2rb!wKkm6mx<;x0)Qg z3;id)ajJi=J#QAeR?eUPhU-qPc~^KHSZS5SV8mHY`K!G>zcC+wYn91Bii}*Js>#Fo zN4~^$PWf|>pw{1V{#^g)13335Fc!7eU}gWrm`?d~uTyFKOZ-n`<`WU*(7G~F|KzKv za?4UpwfWx-tq+4M<8Vg`x){Z(TxkwA;{S=4`U>Jyi$8HLdL+s&$zGmor2q82FP493 z0nbYJyf5H04ZpgQ`IpNDi8_5kEVx7+@e3}3zj$rlZ0dfe7 zkkGI*2_m_XbE7MkxkM}>R<3s;~uf-oPxy1O@9Gy0x z5EJNx*OS0SYHnO3wyzdcPHnYtmhv2v57$Hq{RL?b=s-;NpH_UTp0mHh{L&EPx7|S6 zIp}T(mdgD$ZFB;otM-OMJSNZfh1e_O5N9A=1i6stK+cPwhNwXh9>FjDK^!@jg@qvk zK#=qiezcCG)WD9yi#$_I%!oGloKt0dtzEaBD`)upvRQtKZChmAcrj($i#`dlm|tv@ z`>g@!*wT0#d>|trjCLMFj&T=zzZumGp^jrS37;83`$5^FMOr=4Tj^`lWnbTmmbEAZ z2eer>qUE@Rx#7Y)U*!h&<5)ke_4ak@_?>A_WqsL9%BN)m{($BSro37p*pbpQMkY9* zw+Av=BRvy--4(T(hm3fv!x!^t;SQfy^LV1V7K(X7ny!cRNKlW*;}P%7^uF#PGaVnw zWzEN@Bb|wUGn+RP6G=l4bm)2_G&UAZjwcgcqv>QW(U%<_OPrlFgFb(#%{-Z#o<0+9 z54G$5SQy_A$24C@z|evrPe3y~hQB>xL_&Jlwi1jQD-tK8@KGJ8UIH#3FM)o z|MSHl8ULq`U_6yG5VxA-MhoH&QZ@el;Ld$wwR0exzqp7F`5y$Q{OK>qn^bg``>`9`@<4ZU&v*|5J=Y?fzsa*4 z#?+ni=Xs@ykCey%=3oEpvtq79K75I>d}2ta{K>mg{NLil6DaGSm?7*##-JZ+hBJ|+ zcEb6C|Hn)XeD#4pb`F*i*Ywn zt@wMb8G!Tmy8GV-zAFCiSZPw)D=+JJd~|8+(W75~|JL{my=K?nSGH)DEN2ZA_DRL9 zUfSc$c+y5j3+ny>&6iGRwUjTI#4gJdNcjSOkJlHN;pF8Z(lVf@&vTF5IPJo&d+tA= zOyS0VVHkn&AUeToHKH$B2t8{BUe!{^5a + + + + + + + + \ No newline at end of file diff --git a/OCTPDBA-565 manage index 23.2/.vs/OCTPDBA-565 manage index 23.2/v15/.ssms_suo b/OCTPDBA-565 manage index 23.2/.vs/OCTPDBA-565 manage index 23.2/v15/.ssms_suo new file mode 100644 index 0000000000000000000000000000000000000000..555b04ad37931f85a8620a29e415738204c17983 GIT binary patch literal 30720 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 O!H&YCh~soqa^U|Wx&3

+ + + + + + 2023-04-21T15:44:01.3213141+02:00 + SQL + (local) + + Windows Authentication + + 30 + 0 + NotSpecified + Microsoft SQL Server Management Studio - Query + + + 2023-04-21T15:15:13.4922177+02:00 + SQL + suncent + + Windows Authentication + master + 30 + 0 + NotSpecified + Microsoft SQL Server Management Studio - Query + + + + + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + centrale.sql + + + 8c91a03d-f9b4-46c0-a305-b5dcc79ff907:(local):True + (local) + + pharmacies.sql + + + + + + + + \ No newline at end of file diff --git a/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/centrale.sql b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/centrale.sql new file mode 100644 index 0000000..6df5700 --- /dev/null +++ b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/centrale.sql @@ -0,0 +1,175 @@ +/*============================================================================= + +OCTPDBA-565 +Manage indexes followig 23.2 release branch + +Parameters +---------------------- + + +Context +---------------------- +suncent + +Creation : 21.04.2023 / TSC +Modifications: + +=============================================================================*/ +USE arizona + +DECLARE @business VARCHAR(20); +SELECT @business = [Business] +FROM [master].[cfg].[InstanceContext]; + +--BEGIN TRANSACTION +SET XACT_ABORT ON; +SET NOCOUNT ON; + + +IF @business= 'TPCENT' +BEGIN + /* Item_criteria. drop XIF1041Item_criteria (ITCR_criteria)*/ + IF EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'XIF1041Item_criteria' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_criteria') + )BEGIN + EXEC('use arizona; DROP INDEX dbo.Item_criteria.XIF1041Item_criteria;') + PRINT 'drop XIF1041Item_criteria' + END + + /* Item_criteria. replace XIF1039Item_criteria with NCIX_Item_criteria_COL_ITCR_item*/ + IF EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'XIF1039Item_criteria' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_criteria') + )BEGIN + EXEC('use arizona; DROP INDEX dbo.Item_criteria.XIF1039Item_criteria;') + PRINT 'drop XIF1039Item_criteria' + END + + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Item_criteria_COL_ITCR_item' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_criteria') + )BEGIN + CREATE NONCLUSTERED INDEX NCIX_Item_criteria_COL_ITCR_item ON [Arizona].[dbo].[Item_criteria]([ITCR_item]) + INCLUDE([ITCR_criteria]); + PRINT 'create NCIX_Item_criteria_COL_ITCR_item' + END + + /* Document_line */ + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Document_line_COL_DL_to_be_invoiced' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Document_line') + )BEGIN + CREATE INDEX [NCIX_Document_line_COL_DL_to_be_invoiced] ON [Arizona].[dbo].[Document_line] ([DL_type], [DL_to_be_invoiced]) INCLUDE ([DL_document_header]); + PRINT 'create NCIX_Document_line_COL_DL_to_be_invoiced' + END + + /* Fixed_price. */ + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Fixed_price_COL_FP_tariff_type' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Fixed_price') + )BEGIN + CREATE INDEX [NCIX_Fixed_price_COL_FP_tariff_type] ON [Arizona].[dbo].[Fixed_price] ([FP_tariff_type], [FP_price_code],[FP_start_date]) INCLUDE ([Fixed_price_ID], [FP_item], [FP_end_date], [FP_tax_incl_price_per_unit], [FP_quantity]); + PRINT 'create NCIX_Fixed_price_COL_FP_tariff_type' + END + + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Fixed_price_COL_FP_tariff_type_FP_start_date' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Fixed_price') + )BEGIN + CREATE INDEX [NCIX_Fixed_price_COL_FP_tariff_type_FP_start_date] ON [Arizona].[dbo].[Fixed_price] ([FP_tariff_type],[FP_start_date]) INCLUDE ([Fixed_price_ID], [FP_item], [FP_price_code], [FP_end_date], [FP_tax_incl_price_per_unit], [FP_quantity]); + PRINT 'create xxx' + END + + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Fixed_price_COL_FP_price_code' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Fixed_price') + )BEGIN + CREATE INDEX [NCIX_Fixed_price_COL_FP_price_code] ON [Arizona].[dbo].[Fixed_price] ([FP_price_code],[FP_start_date]) INCLUDE ([Fixed_price_ID], [FP_item], [FP_end_date], [FP_tax_incl_price_per_unit]); + PRINT 'create NCIX_Fixed_price_COL_FP_price_code' + END + + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Fixed_price_COL_FP_subsidiary' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Fixed_price') + )BEGIN + CREATE INDEX [NCIX_Fixed_price_COL_FP_subsidiary] ON [Arizona].[dbo].[Fixed_price] ([FP_subsidiary], [FP_end_date]) INCLUDE ([Fixed_price_ID], [FP_tariff_type], [FP_item], [FP_address], [FP_currency], [FP_price_code], [FP_start_date]) + PRINT 'create xxx' + END + + + /* item_key */ + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Item_key_COL_ITK_subsidiary' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_key') + )BEGIN + CREATE INDEX [NCIX_Item_key_COL_ITK_subsidiary] ON [Arizona].[dbo].[Item_key] ([ITK_subsidiary], [ITK_type]) INCLUDE ([ITK_item], [ITK_key]); + PRINT 'create NCIX_Item_key_COL_ITK_subsidiary' + END + + /*Item_statistics_yearly. heap table with no indexes*/ + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Item_statistics_yearly_COL_ITSTAY_item' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_statistics_yearly') + )BEGIN + CREATE INDEX [NCIX_Item_statistics_yearly_COL_ITSTAY_item] ON [Arizona].[dbo].[Item_statistics_yearly] ([ITSTAY_item], [ITSTAY_inventory_type], [ITSTAY_organizational_unit], [ITSTAY_year]) INCLUDE ([Item_statistics_yearly_id]); + PRINT 'create NCIX_Item_statistics_yearly_COL_ITSTAY_item' + END + + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Item_statistics_yearly_COL_ITSTAY_year' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_statistics_yearly') + )BEGIN + CREATE INDEX [NCIX_Item_statistics_yearly_COL_ITSTAY_year] ON [Arizona].[dbo].[Item_statistics_yearly] ([ITSTAY_year]) INCLUDE ([ITSTAY_item], [ITSTAY_inventory_type], [ITSTAY_organizational_unit]); + PRINT 'create NCIX_Item_statistics_yearly_COL_ITSTAY_year' + END + + + /*Item_status_history.*/ + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [Arizona].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_Item_status_history_COL_ITSH_value_date' + AND [x].[object_id] = OBJECT_ID('arizona.dbo.Item_status_history') + )BEGIN + CREATE INDEX [NCIX_Item_status_history_COL_ITSH_value_date] ON [Arizona].[dbo].[Item_status_history] ([ITSH_value_date]) INCLUDE ([ITSH_item], [ITSH_item_context_status]); + PRINT 'create NCIX_Item_status_history_COL_ITSH_value_date' + END + + /* ------------------------------------------------------ */ + IF NOT EXISTS( + SELECT [x].[index_id] + FROM [PharmIndexTP].[sys].[indexes] x + WHERE [x].[name] = 'NCIX_mapping_PHGD_CompendiumText_COL_PHGD_CPDTXT_GUID' + AND [x].[object_id] = OBJECT_ID('PharmIndexTP.dbo.mapping_PHGD_CompendiumText') + )BEGIN + CREATE INDEX [NCIX_mapping_PHGD_CompendiumText_COL_PHGD_CPDTXT_GUID] ON [PharmIndexTP].[dbo].[mapping_PHGD_CompendiumText] ([PHGD_CPDTXT_GUID]) + INCLUDE ([PHGD_CPDTXT_key], [PHGD_CPDTXT_language], [PHGD_CPDTXT_sequence], [PHGD_CPDTXT_text], [PHGD_CPDTXT_status]); + PRINT 'create NCIX_mapping_PHGD_CompendiumText_COL_PHGD_CPDTXT_GUID' + END + +END + +--ROLLBACK TRANSACTION \ No newline at end of file diff --git a/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/desc.txt b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/desc.txt new file mode 100644 index 0000000..8cb3dee --- /dev/null +++ b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/desc.txt @@ -0,0 +1,232 @@ +/* + +octpdba-497 () have removed openrowset to amavitaLiveAPS, everything is centralised now. +Each procs that have been altered exists with a copy with the suffix "octpdba-497" (typo in some, where the suffix is ctpdba-497). +The copy with the suffix holds the old code. + + +usage of openrowset on suncent + Object name Schema Database Type + ABD_Cent_Load dbo ArizonaCUST Procedures + ABD_Cent_Load_CTPDBA-497 dbo ArizonaCUST Procedures + ACC_Cent_Load dbo ArizonaCUST Procedures + ACC_Cent_Load_CTPDBA-497 dbo ArizonaCUST Procedures + AP_Cent_Load dbo ArizonaCUST Procedures + AP_Cent_Load_OCTPDBA-497 dbo ArizonaCUST Procedures + APR_Cent_Load dbo ArizonaCUST Procedures + aps_Central_Annual_Inventory_Load dbo ArizonaCUST Procedures + aps_GAL_olpFACT_controle_PHA dbo ArizonaCUST Procedures + aps_SUN_Cession_Creances dbo ArizonaCUST Procedures + aps_SUN_Get_Balanced_Scorecard_Data_From_Central dbo ArizonaCUST Procedures + AS_Cent_Load dbo ArizonaCUST Procedures + AS_Cent_Load__OCTPDBA-497 dbo ArizonaCUST Procedures + AT_Cent_Aggregated_Data_Load dbo ArizonaCUST Procedures + AT_Cent_Aggregated_Data_Load_OCTPDBA-497 dbo ArizonaCUST Procedures + AT_Cent_Extract_specific_pd_codes dbo ArizonaCUST Procedures + AT_Cent_Load dbo ArizonaCUST Procedures + CRMCRD_Cent_Load dbo ArizonaCUST Procedures + CRMCRD_Cent_Load_OCTPDBA-497 dbo ArizonaCUST Procedures + CRSH_Cent_Load dbo ArizonaCUST Procedures + CRSO_Cent_Load dbo ArizonaCUST Procedures + CRSO_Cent_Load_OCTPDBA-497 dbo ArizonaCUST Procedures + DHICI_Cent_Load dbo ArizonaCUST Procedures + DHICI_Cent_Load_OCTPDBA-497 dbo ArizonaCUST Procedures + FM_Cent_Load dbo ArizonaCUST Procedures + ITSC_Cent_Load dbo ArizonaCUST Procedures + SSRS_CR_Sales_Select_For_CR_Operation dbo ArizonaCUST Procedures + SSRS_Galenicare_Invoice_Payment_List dbo ArizonaCUST Procedures + +stuff that stinks: + ABD_Cent_Load + user sqlSyncAccountingExtractionUsr with it's password in the proc + + ACC_Cent_Load + seems that SA passwords are in there. + not the actual SA passwords, might be old code that was not adapted + + AP_Cent_Load + user sqlSyncAccountingExtractionUsr with it's password in the proc + + AT_Cent_Load + Still have a link to AMAVITALIVEAPS + + + +reports: + FidelityCardSales + Rapport KO. Son lancement remonte le message suivant + An error has occurred during report processing. (rsProcessingAborted) + Query execution failed for dataset 'DSMain'. (rsErrorExecutingCommand) + Could not find stored procedure 'Extraction_Galenicare_Sales_Fidelity_Card'. + + Lors de la sélection de la "company", lance une query sur Gaia qui retourne toutes les OU de tous les formats ainsi que les "cost centers" + --------------------------- + with Pharmacy ([Company], [Code], [Code_name]) as + ( + select coalesce(asub.Code, OU_subsidiary_prefix) + , OU_code + , OU_code + ' ' + OU_short_name + from [crs].[vwOrganizationalUnit] ou with (nolock) + inner join phar.address_criteria adcr with (nolock) + on ou.OU_pharmacy_code = adcr.ADCR_pharmacy_code + and ou.OU_address = adcr.ADCR_address + inner join phar.criteria cr with (nolock) + on adcr.ADCR_criteria = cr.Criteria_ID + and adcr.ADCR_pharmacy_code = cr.CR_pharmacy_code + inner join [phar].[Criteria_type] crt with (nolock) + on cr.CR_criteria_type = crt.Criteria_type_ID + and cr.CR_pharmacy_code = crt.CRT_pharmacy_code + left join crs.AdditionalSubsidiaryLink asl with (nolock) + on ou.Reference_Organizational_unit_ID = asl.OrganizationalUnitId + left join crs.AdditionalSubsidiary asub with (nolock) + on asl.AdditionalSubsidiaryId = asub.AdditionalSubsidiaryId + where crt.CRT_type = 1 and crt.crt_code = 'ENV' + and ou.OU_subsidiary_prefix is not null + ) + select 1 as Position, [Company], null as [Code], '' as [Code_name] + from [Pharmacy] + union + select 2 as Position, [Company], [Code], [Code_name] + from Pharmacy + order by Position, Company, Code + + + with CostCenter([Code], [Company]) + as + (SELECT pcck.PCCK_key AS [Code], + coalesce(asub.Code, ou.OU_subsidiary_prefix) AS [Company] + from crs.vwOrganizationalUnit ou with (nolock) + left join crs.AdditionalSubsidiaryLink asl with (nolock) + on ou.Reference_Organizational_unit_ID = asl.OrganizationalUnitId + left join crs.AdditionalSubsidiary asub with (nolock) + on asl.AdditionalSubsidiaryId = asub.AdditionalSubsidiaryId + inner join phar.Profit_cost_center_key pcck with (nolock) + on pcck.PCCK_profit_cost_center = ou.OU_profit_cost_center + and pcck.PCCK_pharmacy_code = ou.OU_pharmacy_code + inner join phar.Fiscal_year fy with (nolock) + on fy.Fiscal_year_ID = pcck.PCCK_fiscal_year + and fy.FY_pharmacy_code = pcck.PCCK_pharmacy_code + and fy.FY_subsidiary = ou.OU_subsidiary + and fy.FY_number = 2022 + and pcck.PCCK_type = Case When coalesce(asub.Code, ou.OU_subsidiary_prefix) in ('CVI', 'SUN') Then 3 + Else 1 End + where ou.OU_centrale_code = 'G') + SELECT 1 as Position, null as [Code], '' as [Code_name], null as [Company] from CostCenter + union + SELECT 2 as Position, null as [Code], '' as [Code_name], [Company] from CostCenter + union + SELECT 3 as Position, [Code], [Code] as [Code_name], [Company] from CostCenter + order by Position, Company, Code + --------------------------- + + LifeStageInvoices + l'ouverture rdu rapport lance 2 query. la 1ere liste les "cost centeers" comme dans le rapport précédent + Démarre la query suivante en environ 38 secondes: + ---------------- + exec sp_executesql N'SELECT dh.DH_doc_number AS InvoiceNumber, + dh.DH_value_date AS InvoiceDate, + et.ET_debit_base_amount AS InvoiceAmount, + dh.DH_sold_to_text AS CustomerName, + coalesce(et.ET_debit_base_amount, 0) - coalesce(SUM(etr.ETR_base_amount), 0) AS DueAmount, + dh.DH_invoice_group AS LifeStageNumber, + ins.PHIN_name_german AS [Debtor] + FROM [Gaia].[phar].[Document_header] dh WITH (nolock) + INNER JOIN phar.Entry et WITH (nolock) + ON dh.document_header_id = et.ET_document_header + AND dh.dh_account = et.Et_account + AND dh.DH_pharmacy_code = et.ET_pharmacy_code + LEFT JOIN phar.Entry_reconciliation etr WITH (nolock) + ON et.Entry_ID = etr.ETR_entry + AND et.ET_pharmacy_code = etr.ETR_pharmacy_code + left join phar.PH_insurance as ins with (nolock) + on ins.PHIN_address = dh.DH_send_bill_to + and left(ins.PHIN_pharmacy_code, 1) = left(dh.DH_pharmacy_code, 1) + WHERE dh.DH_invoice_group IS NOT NULL + AND dh.DH_our_ref LIKE ''LifeStage%'' + AND dh.DH_pharmacy_code = @PharmacyLifeStage + GROUP BY dh.DH_doc_number, + dh.Document_header_ID, + dh.DH_value_date, + et.ET_debit_base_amount, + dh.DH_sold_to_text, + dh.DH_BVR_reference, + dh.DH_account, + dh.DH_invoice_group, + dh.DH_our_ref, + et.ET_reconciliation_status, + ins.PHIN_name_german + HAVING ((@LifeStageInvoiceNumber is not null AND dh.DH_invoice_group like @LifeStageInvoiceNumber + ''%'') + OR (@TriaPharmInvoiceNumber is not null AND @LifeStageInvoiceNumber is null AND dh.DH_Doc_number like @TriaPharmInvoiceNumber + ''%'') + OR (@LifeStageInvoiceNumber is null AND @TriaPharmInvoiceNumber is null AND dh.DH_value_date between @InvoiceDateFrom AND isnull(@InvoiceDateTo, cast(getDate() as date)) + AND (@OpenedInvoice = 0 OR isnull(et.ET_reconciliation_status, 1) = 1)));',N'@InvoiceDateFrom datetime,@InvoiceDateTo nvarchar(4000),@LifeStageInvoiceNumber nvarchar(4000),@OpenedInvoice bit,@TriaPharmInvoiceNumber nvarchar(4000),@PharmacyLifeStage nvarchar(6)',@InvoiceDateFrom='2022-01-01 00:00:00',@InvoiceDateTo=NULL,@LifeStageInvoiceNumber=NULL,@OpenedInvoice=1,@TriaPharmInvoiceNumber=NULL,@PharmacyLifeStage=N'GAM316' + ---------------- + + OpenInvoiceDetails: + nécessite un "master id", l'entrée de data bidon remonte la query suivante lancée: + ------------------- + (@InvoiceDateFrom datetime,@InvoiceDateTo nvarchar(4000),@LifeStageInvoiceNumber nvarchar(4000),@OpenedInvoice bit,@TriaPharmInvoiceNumber nvarchar(4000),@PharmacyLifeStage nvarchar(6))SELECT dh.DH_doc_number AS InvoiceNumber, + dh.DH_value_date AS InvoiceDate, + et.ET_debit_base_amount AS InvoiceAmount, + dh.DH_sold_to_text AS CustomerName, + coalesce(et.ET_debit_base_amount, 0) - coalesce(SUM(etr.ETR_base_amount), 0) AS DueAmount, + dh.DH_invoice_group AS LifeStageNumber, + ins.PHIN_name_german AS [Debtor] + FROM [Gaia].[phar].[Document_header] dh WITH (nolock) + INNER JOIN phar.Entry et WITH (nolock) + ON dh.document_header_id = et.ET_document_header + AND dh.dh_account = et.Et_account + AND dh.DH_pharmacy_code = et.ET_pharmacy_code + LEFT JOIN phar.Entry_reconciliation etr WITH (nolock) + ON et.Entry_ID = etr.ETR_entry + AND et.ET_pharmacy_code = etr.ETR_pharmacy_code + left join phar.PH_insurance as ins with (nolock) + on ins.PHIN_address = dh.DH_send_bill_to + and left(ins.PHIN_pharmacy_code, 1) = left(dh.DH_pharmacy_code, 1) + WHERE dh.DH_invoice_group IS NOT NULL + AND dh.DH_our_ref LIKE 'LifeStage%' + AND dh.DH_pharmacy_code = @PharmacyLifeStage + GROUP BY dh.DH_doc_number, + dh.Document_header_ID, + dh.DH_value_date, + et.ET_debit_base_amount, + dh.DH_sold_to_text, + dh.DH_BVR_reference, + dh.DH_account, + dh.DH_invoice_group, + dh.DH_our_ref, + et.ET_reconciliation_status, + ins.PHIN_name_german + HAVING ((@LifeStageInvoiceNumber is not null AND dh.DH_invoice_group like @LifeStageInvoiceNumber + '%') + OR (@TriaPharmInvoiceNumber is not null AND @LifeStageInvoiceNumber is null AND dh.DH_Doc_number like @TriaPharmInvoiceNumber + '%') + OR (@LifeStageInvoiceNumber is null AND @TriaPharmInvoiceNumber is null AND dh.DH_value_date between @InvoiceDateFrom AND isnull(@InvoiceDateTo, cast(getDate() as date)) + AND (@OpenedInvoice = 0 OR isnull(et.ET_reconciliation_status, 1) = 1))); + ------------------- + + OpenInvoice: + lance une query en entrant sur le rapport pour lister les formats et les OU. + ----------------- + select ou.Organizational_unit_ID [Reference_Organizational_unit_ID], + case when charindex(ou.OU_code,ou.OU_short_name) > 0 then ou.OU_short_name else ou.OU_short_name + ' ' + ou.OU_code end [Name] + from phar.Organizational_unit as ou + join [crs].[vwSubsidiary] as sub + on sub.Reference_Subsidiary_ID = ou.OU_subsidiary + join phar.PH_organizational_unit as phou + on phou.PHOU_organizational_unit = ou.Organizational_unit_ID + and phou.PHOU_pharmacy_code = ou.OU_pharmacy_code + left join phar.Organizational_unit ou2 + on ou2.OU_master_ID = ou.Organizational_unit_ID and ou2.OU_pharmacy_code = 'A00000' + where ou.OU_pharmacy_code = 'G00000' + and ou.OU_subsidiary = 1 + order by ou.OU_subsidiary, ou.OU_short_name + + select sub.Reference_Subsidiary_ID, + sub.SUB_prefix + from crs.vwSubsidiary sub with (nolock) + ----------------- + + Le lancement du report lance la proc reportOpenInvoice qui mouline bien sur Gaia + ----------------- + exec crs.ReportOpenInvoices @Format=N'1',@Pharmacy=N'185;157;249;339;366;205;142;308;186;354;285;296;148;298;341;284;322;290;169;144;349;173;163;133;348;342;146;261;124;174;248;137;260;202;117;156;194;254;207;287;334;247;227;153;552;345;663;306;128;130;129;327;131;844;843;300;189;295;338;333;217;110;161;198;329;111;109;270;210;330;103;343;854;224;340;336;272;145;328;166;346;136;859;122;134;135;125;314;118;307;123;760;292;164;120;301;291;195;282;721;571;132;317;114;113;112;115;119;305;302;570;319;544;140;323;373;320;138;139;303;344;318;147;274;310;358;357;359;574;575;873;321;311;175;360;388;331;216;560;143;126;559;299;121;781;335;304',@InvoiceNumber=NULL,@NegativeAmount=0 + ----------------- + +*/ \ No newline at end of file diff --git a/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/pharmacies.sql b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/pharmacies.sql new file mode 100644 index 0000000..513ff62 --- /dev/null +++ b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/pharmacies.sql @@ -0,0 +1,70 @@ +/*============================================================================= + +OCTPDBA-565 +Manage indexes followig 23.2 release branch + +Parameters +---------------------- + + +Context +---------------------- +Every pharmacies + +Creation : 21.04.2023 / TSC +Modifications: + +=============================================================================*/ +USE [Arizona] +GO + +/* +Item_criteria +drop old constraints. 2 can be merged and 1 is not used + +XIEAPS2Item_criteria = dbo.Item_criteria(ITCR_master_ID) ==> to drop, not used +XIF1039Item_criteria = dbo.Item_criteria(ITCR_item) ==> becomes an include on the index on ITCR_criteria +XIF1041Item_criteria = dbo.Item_criteria(ITCR_criteria) +*/ +IF INDEXPROPERTY(OBJECT_ID('dbo.Item_criteria'), 'XIEAPS2Item_criteria' , 'IndexID' ) IS NOT NULL BEGIN; + DROP INDEX dbo.Item_criteria.XIEAPS2Item_criteria; +END; +GO + +IF INDEXPROPERTY(OBJECT_ID('dbo.Item_criteria'), 'XIF1039Item_criteria' , 'IndexID' ) IS NOT NULL BEGIN; + DROP INDEX dbo.Item_criteria.XIF1039Item_criteria; +END; +GO + +IF INDEXPROPERTY(OBJECT_ID('dbo.Item_criteria'), 'XIF1041Item_criteria' , 'IndexID' ) IS NOT NULL BEGIN; + DROP INDEX dbo.Item_criteria.XIF1041Item_criteria; +END; +GO + + +IF INDEXPROPERTY(OBJECT_ID('dbo.Item_criteria'), 'NCIX_Item_criteria_COL_ITCR_criteria' , 'IndexID' ) IS NULL BEGIN; + CREATE NONCLUSTERED INDEX NCIX_Item_criteria_COL_ITCR_criteria ON dbo.Item_criteria(ITCR_criteria) + INCLUDE(ITCR_item); +END; +GO + + +/* ------------------------------------------------------ */ + +/* +Document_line + +the index NCIX_Document_line_COL_DL_type is not used. +Adapt it to follow the recommendation +*/ + +-- NCIX_Document_line_COL_DL_type +IF INDEXPROPERTY(OBJECT_ID('dbo.Document_line'), 'NCIX_Document_line_COL_DL_type' , 'IndexID' ) IS NOT NULL BEGIN; + DROP INDEX [dbo].[Document_line].[NCIX_Document_line_COL_DL_type]; +END; +GO +IF INDEXPROPERTY(OBJECT_ID('dbo.Document_line'), 'NCIX_Document_line_COL_DL_type' , 'IndexID' ) IS NULL BEGIN; + CREATE INDEX [NCIX_Document_line_COL_DL_type] ON [dbo].[Document_line]([DL_type], [DL_to_be_invoiced]) + INCLUDE([DL_document_header]); +END; +GO diff --git a/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/revert central.sql b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/revert central.sql new file mode 100644 index 0000000..0c0eaff --- /dev/null +++ b/OCTPDBA-565 manage index 23.2/OCTPDBA-565 manage index 23.2/revert central.sql @@ -0,0 +1,89 @@ +/*============================================================================= + +What does it does ? + +Parameters +---------------------- + + +Context +---------------------- +What is the context, where does it needs to run ? + +Creation : 25.04.2023 / TSC +Modifications: + +=============================================================================*/ +SET XACT_ABORT ON; +SET NOCOUNT ON; + +USE [Arizona] + +-- XIF1039Item_criteria +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_criteria'), 'XIF1039Item_criteria' , 'IndexID' ) IS NULL BEGIN; + CREATE INDEX XIF1039Item_criteria ON arizona.dbo.Item_criteria(ITCR_item); +END; +GO + + +-- XIF1041Item_criteria +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_criteria'), 'XIF1041Item_criteria' , 'IndexID' ) IS NULL BEGIN; + CREATE INDEX XIF1041Item_criteria ON arizona.dbo.Item_criteria(ITCR_criteria); +END; +GO + +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_criteria'), 'NCIX_Item_criteria_COL_ITCR_item' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Item_criteria.NCIX_Item_criteria_COL_ITCR_item +END + +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.document_line'), 'NCIX_Document_line_COL_DL_to_be_invoiced' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.[Document_line].NCIX_Document_line_COL_DL_to_be_invoiced +END + + + +/* Fixed_price. */ +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Fixed_price'), 'NCIX_Fixed_price_COL_FP_tariff_type' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX [dbo].[Fixed_price].[NCIX_Fixed_price_COL_FP_tariff_type] +END + +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Fixed_price'), 'NCIX_Fixed_price_COL_FP_tariff_type_FP_start_date' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Fixed_price.[NCIX_Fixed_price_COL_FP_tariff_type_FP_start_date] +END + +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Fixed_price'), 'NCIX_Fixed_price_COL_FP_price_code' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Fixed_price.[NCIX_Fixed_price_COL_FP_price_code] +END + +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Fixed_price'), 'NCIX_Fixed_price_COL_FP_subsidiary' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Fixed_price.[NCIX_Fixed_price_COL_FP_subsidiary] +END + + +/* item_key */ +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_key'), 'NCIX_Item_key_COL_ITK_subsidiary' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Item_key.[NCIX_Item_key_COL_ITK_subsidiary] +END + +/*Item_statistics_yearly. heap table with no indexes*/ +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_statistics_yearly'), 'NCIX_Item_statistics_yearly_COL_ITSTAY_item' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Item_statistics_yearly.[NCIX_Item_statistics_yearly_COL_ITSTAY_item] +END + +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_statistics_yearly'), 'NCIX_Item_statistics_yearly_COL_ITSTAY_year' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Item_statistics_yearly.[NCIX_Item_statistics_yearly_COL_ITSTAY_year] +END + + +/*Item_status_history.*/ +IF INDEXPROPERTY(OBJECT_ID('arizona.dbo.Item_status_history'), 'NCIX_Item_status_history_COL_ITSH_value_date' , 'IndexID' ) IS NOT NULL BEGIN + DROP INDEX dbo.Item_status_history.[NCIX_Item_status_history_COL_ITSH_value_date] +END + +/* ------------------------------------------------------ */ + +USE [PharmIndexTP] +IF INDEXPROPERTY(OBJECT_ID('PharmIndexTP.dbo.mapping_PHGD_CompendiumText'), 'NCIX_mapping_PHGD_CompendiumText_COL_PHGD_CPDTXT_GUID' , 'IndexID' ) IS NULL BEGIN + DROP INDEX dbo.mapping_PHGD_CompendiumText.[NCIX_mapping_PHGD_CompendiumText_COL_PHGD_CPDTXT_GUID] + END + diff --git a/xe_host_app_query.viewsetting b/xe_host_app_query.viewsetting new file mode 100644 index 0000000..254d7ae --- /dev/null +++ b/xe_host_app_query.viewsetting @@ -0,0 +1,21 @@ + + + + + 160 + + + + 160 + + + + 100 + + + + 100 + + + + \ No newline at end of file