Hi all,
I got a little C# consolle app that is very slow updating a SQL SERVER 2017 table. The process start quickly and after a while slow down. I use a OdbcCommand... could be this that slow down the action? The app write on a filesystem a file and after, row-by-row, update a table in sql server.
All this process is on application server, away from SQL SERVER machine... but on same network.
I've create a precise index with ("CODICE_PEC_ID" +"TIPO") including also the field "DATA_RICHIESTA_CONSERVAZIONE"
as you can see from the execution plan below... it's used.
The update could be also 10" long... I try to comment it and all speed up 'til 1000 write on filesystem by minute.
Table is 2 017 682 rows... but without any extreme TYPE... all INT o varchar(10) or datetime.
CREATE TABLE [dbo].[PEC](
[CODICE_ID] [int] NOT NULL,
[CODICE_PEC_ID] [int] NOT NULL,
[CODICE_DOCUMENTO_ID] [int] NULL,
[NUMERO_INVIO] [int] NULL,
[TIPO] [varchar](1) NULL,
[stream_id] [uniqueidentifier] NOT NULL,
[DATA_RICHIESTA_CONSERVAZIONE] [datetime] NULL,
[DATA_CONSERVAZIONE] [datetime] NULL,
[STATO] [varchar](1) NOT NULL,
[ORIGINE] [varchar](1) NOT NULL,
[USER] [varchar](60) NOT NULL,
CONSTRAINT [PK_PEC_RICEVUTE] PRIMARY KEY CLUSTERED
(
[CODICE_ID] ASC,
[CODICE_PEC_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
CREATE NONCLUSTERED INDEX [idx_CODICE_PEC_ID_TIPO] ON [dbo].[PEC]
(
[CODICE_PEC_ID] ASC,
[TIPO] ASC
)
INCLUDE([DATA_RICHIESTA_CONSERVAZIONE]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO
Do you have some tips?
Thanks Alen

connectionTorDoc.Open();
string sql = @"UPDATE TO40_CORE_DOCUM.PEC_RICEVUTE SET DATA_RICHIESTA_CONSERVAZIONE = '" + DateTime.Today.Date.ToString("yyyy-MM-dd") + "' WHERE CODICE_PEC_ID = " + pec.Item1.ToString() + " and TIPO = '" + pec.Item2.ToString() + "'";
OdbcCommand update = new OdbcCommand(sql, connectionTorDoc);
update.CommandTimeout = 0;
update.ExecuteNonQuery();
connectionTorDoc.Close();