我正在使用SQLExpress設計數據庫。 我有一個有三列的表格。表格如下所示。添加索引後更新表格
CREATE TABLE [dbo].[dummy](
[id] [int] IDENTITY(1,1) NOT NULL,
[someLongString] [text] NOT NULL,
[someLongText_Hash] [binary](20) NOT NULL,
CONSTRAINT [PK_dummy] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
我已經在此表中有一些數據。無論何時我想添加一個新行,我首先在someLongString
上計算一個散列並查詢該表以查看是否存在具有該散列的行。隨着表大小的增長,這個查詢會話的時間會更長,因此我計劃通過someLongText_Hash
列索引它。
可以請一些建議如何在SQL Server Management Studio中執行此操作。此外,添加此索引後,如何索引此表中的現有行?
爲什麼你使用'TEXT'作進一步說明,請參見here?您應該使用'VARCHAR(MAX)' – 2012-07-12 00:48:41
@AaronBertrand,如何使用Varchar(MAX)比使用Text更好? – Venom 2012-07-12 17:18:47
'TEXT'已棄用。 http://msdn.microsoft.com/en-us/library/ms143729(v=sql.90).aspx – 2012-07-12 17:20:01