Sto cercando di capire perché le letture logiche vengono eseguite su una tabella di destinazione quando si inserisce in essa quando è una tabella vuota. Ho la seguente tabella.Letture logiche sulla tabella di destinazione vuota quando ci si inserisce
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Employee](
[ID] [int] IDENTITY(1,1) NOT NULL,
[EmployeeID] [int] NOT NULL,
[EmployeeName] [varchar](50) NOT NULL
) ON [FG_Test]
GO
SET ANSI_PADDING OFF
GO
Questa è una tabella vuota con ID che rappresenta la chiave primaria con un indice cluster su tale ID. Quando uso la seguente dichiarazione dell'inserto
TRUNCATE TABLE [dbo].[Employee];
INSERT INTO [dbo].[Employee] WITH (TABLOCK) (EmployeeID, EmployeeName)
(
SELECT EmployeeID,
EmployeeName
FROM Process.Employee
);
Come per l'impostazione statistiche IO ON, sto ottenendo 1.596.236 letture logiche sul tavolo dbo.Employee. Quando faccio cadere l'indice, queste letture di logica non si verificano più, quindi quando aggiungo lo stesso identico indice anche le letture logiche non si verificano più. Nel tempo le letture logiche ricominciano quando tengo l'indice sul tavolo.
Perché dovrebbe essere?