簡體   English   中英

SQL Server刪除查詢性能

[英]SQL Server DELETE query performance

我有一個簡單的表,正在評估這是從其中刪除一些記錄的最佳方法。

DELETE查詢非常簡單: DELETE FROM [dbo].[Badge] WHERE [Id_Operatore] = @SOMEVALUE

有沒有辦法提高此操作的性能?

這是表:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Badge](
    [Id_Badge] [int] IDENTITY(1,1) NOT NULL,
    [Id_Operatore] [int] NULL,
    [Badge0] [smallint] NULL,
    [Badge1] [smallint] NULL,
    [Badge2] [smallint] NULL,
    [Badge3] [smallint] NULL,
    [Badge4] [smallint] NULL,
    [Badge5] [smallint] NULL,
    [Badge6] [smallint] NULL,
    [Badge7] [smallint] NULL,
    [Badge8] [smallint] NULL,
    [Badge9] [smallint] NULL,
    [Badge10] [smallint] NULL,
    [Badge11] [smallint] NULL,
    [Badge12] [smallint] NULL,
    [Badge13] [smallint] NULL,
    [Badge14] [smallint] NULL,
    [Badge15] [smallint] NULL,
    [Badge16] [smallint] NULL,
    [Badge17] [smallint] NULL,
    [Badge18] [smallint] NULL,
    [Badge19] [smallint] NULL
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Badge]  WITH CHECK ADD  CONSTRAINT [Badge_FK00] FOREIGN KEY([Id_Operatore])
REFERENCES [dbo].[Operatori] ([ID_Operatore])
ON UPDATE CASCADE
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[Badge] CHECK CONSTRAINT [Badge_FK00]
GO

您應該在外鍵上添加索引。

該索引可能會涵蓋所有內容,因此包括所有這些標志不是一個壞主意。

在[Id_Operatore]上創建聚簇(首選)或非聚簇索引。

“群集”使數據彼此保持物理狀態。 這樣可以減少刪除時的IO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM