當前位置:首頁 » 編程語言 » 重新生成索引sql

重新生成索引sql

發布時間: 2023-03-07 04:20:44

⑴ 創建索引的sql語句

創建索引的sql語句是【CREATE INDEX indexName ONtable_name(column_name)】。

【CREATE INDEX indexName ON table_name(column_name)】是最基本的創建索引的語法,它沒有任何限制。如果是CHAR,VARCHAR類型,length可以小於欄位實際長度;如果是BLOB和TEXT類型,必須指定length。下一步是修改表結構(添加索引),創建表的時候直接指定。

⑵ 如何重建SQL索引 要具體的命令

USE TableName
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
DBCC DBREINDEX(@TableName,' ',90)
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor

⑶ sqlserver 怎麼建索引

(1)在SQL Server Management Studio中,選擇並右擊要創建索引的表,從彈出菜單中選擇「設計」,打開表設計器。右鍵單擊表設計器,從彈出菜單中選擇「索引/鍵」命令,打開「索引/鍵」對話框。對話框中列出了已經存在的索引,如下圖所示。
(2)單擊「添加」按鈕。在「選定的主/唯一鍵或索引」框顯示系統分配給新索引的名稱。
(3)在「列」屬性下選擇要創建索引的列。可以選擇多達16列。為獲得最佳性能,最好只選擇一列或兩列。對所選的每一列,可指出索引是按升序還是降序組織列值。
(4)如果要創建唯一索引,則在「是唯一的」屬性中選擇「是」。
(5)設置完成後,單擊「確定」按鈕。
(6)當保存表時,索引即創建在資料庫中。
使用CREATE INDEX語句創建索引:
復制內容到剪貼板
代碼:
CREATE[ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX索引名
ON {表名|視圖名} (列名[ ASC | DESC ] [ ,...n ] )
例:
在資料庫HrSystem中為表Employees創建基於IDCard列的唯一索引IX_Employees,可以使用以下命令:
復制內容到剪貼板
代碼:
USE HrSystem
GO
CREATE UNIQUE NONCLUSTERED INDEX [IX_Employees]ONdbo.Employees(IdCard)
GO
例:
為表Employees創建基於列IDCard的唯一、聚集索引IX_Employees1,可以使用以下命令:
復制內容到剪貼板
代碼:
USE HrSystem
GO
CREATE UNIQUE CLUSTERED INDEX [IX_Employees1] ON [dbo].[Employees](IdCard)
GO
需要注意的是,在一個表中只允許存在一個聚集索引。因此,如果表Employees中已經存在一個聚集索引,則執行上面的語句時將會提示下面的錯誤信息。
消息1902,級別16,狀態3,第1行
無法對表'dbo.Employees'創建多個聚集索引。請在創建新聚集索引前刪除現有的聚集索引'PK__Employee__263E2DD300551192'。 例:
對表Employees的列Emp_name按照降序創建索引,可以使用以下命令:
復制內容到剪貼板
代碼:
USE HrSystem
GO
CREATENONCLUSTERED INDEX [IX_Employees2] ON [dbo].[Employees]
(
[Emp_name] DESC
)
GO
在CREATE INDEX語句中使用INCLUDE子句,可以在創建索引時定義包含的非鍵列,其語法結構如下:
復制內容到剪貼板
代碼:
CREATENONCLUSTERED INDEX 索引名
ON { 表名| 視圖名 } ( 列名 [ ASC | DESC ] [ ,...n ] )
INCLUDE (<列名1>, <列名2>, [,… n])
例: 在表Employees上創建非聚集索引IX_Wage,索引中的鍵列為Wage,非鍵列為Emp_name、Sex和Title,具體語句如下:
復制內容到剪貼板
代碼:
USEHrSystem
GO
CREATENONCLUSTERED INDEX IX_Wage
ON Employees ( Wage )
INCLUDE (Emp_name, Sex, Title)
GO
例: 在創建索引IX_Wage後,當表Employees中的數據量比較大時,執行下面的SELECT語句將會明顯地改進查詢效率。
復制內容到剪貼板
代碼:
USEHrSystem
GO
SELECTEmp_name, Sex, Title, Wage
FROMEmployees
WHEREWage BETWEEN 1000 AND 3000
GO
修改索引:
在SQL Server Management Studio中,選擇並右擊要創建索引的表,從彈出的菜單中選擇「設計表」,打開表設計器。右鍵單擊表設計器,從彈出菜單中選擇「索引/鍵」命令,打開「索引/鍵」對話框,並查看已經存在的索引及修改索引的屬性信息。
也可以使用ALTER INDEX語句修改索引,其基本語法如下:
復制內容到剪貼板
代碼:
ALTER INDEX { 索引名| ALL }
ON <表名|視圖名>
{ REBUILD | DISABLE | REORGANIZE }[ ; ]
ALTER INDEX語句的參數比較復雜,這里只介紹它的基本使用情況。參數說明如下:
REBUILD指定重新生成索引。 DISABLE指定將索引標記為已禁用。 REORGANIZE指定將重新組織的索引葉級。
例:
要禁用索引IX_Employees,可以使用下面的語句:
復制內容到剪貼板
代碼:
USE HrSystem
GO
ALTERINDEX IX_Employees ON Employees DISABLE
GO
刪除索引:
在SQL Server Management Studio中,選擇並右擊要創建索引的表,從彈出的菜單中選擇「設計表」。打開表設計器。右鍵單擊表設計器,從彈出菜單中選擇「索引/鍵」命令,在打開的「索引/鍵」對話框中列出了已經存在的索引。單擊「刪除」按鈕,即可刪除索引信息。
復制內容到剪貼板
代碼:
DROP INDEX 表名.索引名|視圖名.索引名[ ,...n ]
總結:
o(1)索引並非越多越好,一個表中如果有大量的索引,不僅佔用大量的磁碟空間,而且會影響INSERT、DELETE、UPDATE等語句的性能。因為當表中數據更改的同時,索引也會進行調整和更新。
o(2)避免對經常更新的表進行過多的索引,並且索引中的列盡可能少。而對經常用於查詢的欄位應該創建索引,但要避免添加不必要的欄位。
o(3)數據量小的表最好不要使用索引,由於數據較少,查詢花費的時間可能比遍歷索引的時間還要短,索引可能不會產生優化效果。
o(4)在條件表達式中經常用到的、不同值較多的列上建立索引,在不同值少的列上不要建立索引。比如在學生表的「性別」欄位上只有「男」與「女」兩個不同值,因此就無須建立索引。如果建立索引,不但不會提高查詢效率,反而會嚴重降低更新速度。
o(5)當唯一性是某種數據本身的特徵時,指定唯一索引。使用唯一索引能夠確保定義的列的數據完整性,提高查詢速度。
o(6)在頻繁進行排序或分組(即進行GROUPBY或ORDERBY操作)的列上建立索引,如果待排序的列有多個,可以在這些列上建立組合索引。

⑷ 怎樣sql2008 重新生成索引任務

重新生成索引在對象資源管理器中,連接到SQLServer2005資料庫引擎實例,再展開該實例。展開「資料庫」,展開包括具有指定索引的表的資料庫,再展開「表」。展開該索引所屬的表,再展開「索引」。右鍵單擊要重新生成的索引,再單擊「重新生成」。
若要開始重新生成操作,請單擊「肯定」。為表重新生成所有索引在對象資源管理器中,連接到SQLServer2005資料庫引擎實例,再展開該實例。展開「資料庫」,展開包括具有指定索引的表的資料庫,再展開「表」。轉載,僅供參考。
展開索引所屬的表。右鍵單擊「索引」,再單擊「全部重新生成」。若要開始重新生成操作,請單擊「肯定」。

⑸ SQL Server 2000資料庫中如何重建索引

連續索引頁由從一個頁到下一個頁的指針鏈接在一起。當對數據的更改影響到索引時,索引中的信息可能會在資料庫中分散開來。重建索引可以重新組織索引數據(對於聚集索引還包括表數據)的存儲,清除碎片。這可通過減少獲得請求數據所需的頁讀取數來提高磁碟性能。 在Microsoft�0�3 SQL Server�6�4 2000 中,如果要用一個步驟重新創建索引,而不想刪除舊索引並重新創建同一索引,則使用 CREATE INDEX 語句的 DROP_EXISTING 子句可以提高效率。這一優點既適用於聚集索引也適用於非聚集索引。 以刪除舊索引然後重新創建同一索引的方式重建聚集索引,是一種昂貴的方法,因為所有二級索引都使用聚集鍵指向數據行。如果只是刪除聚集索引然後重新創建,則會使所有非聚集索引都被刪除和重新創建兩次。一旦刪除聚集索引並再次重建該索引,就會發生這種情形。通過在一個步驟中重新創建索引,可以避免這一昂貴的做法。在一個步驟中重新創建索引時,會告訴 SQL Server 要重新組織現有索引,避免了刪除和重新創建非聚集索引這些不必要的工作。該方法的另一個重要優點是可以使用現有索引中的數據排序次序,從而避免了對數據重新排序。這對於聚集索引和非聚集索引都十分有用,可以顯著減少重建索引的成本。另外,通過使用 DBCC DBREINDEX 語句,SQL Server 還允許對一個表重建(在一個步驟中)一個或多個索引,而不必單獨重建每個索引。 DBCC DBREINDEX 也可用於重建執行 PRIMARY KEY 或 UNIQUE 約束的索引,而不必刪除並創建這些約束(因為對於為執行 PRIMARY KEY 或 UNIQUE 約束而創建的索引,必須先刪除該約束,然後才能刪除該索引)。

⑹ sql重新組織碎片索引和重新組織索引的區別

重新生成索引將會刪除並重新創建索引。它通過根據現有填充因子設置壓縮頁來刪除碎片,回收磁碟空間,並對連續頁中的索引行重新排序。有關索引碎片的詳細信息,請參閱重新組織和重新生成索引。重新生成索引在對象資源管理器中,連接到 SQL Server 2005 資料庫引擎??實例,再展開該實例。展開「資料庫」,展開包含具有指定索引的表的資料庫,再展開「表」。展開該索引所屬的表,再展開「索引」。右鍵單擊要重新生成的索引,再單擊「重新生成」。若要開始重新生成操作,請單擊「確定」。為表重新生成所有索引在對象資源管理器中,連接到 SQL Server 2005 資料庫引擎??實例,再展開該實例。展開「資料庫」,展開包含具有指定索引的表的資料庫,再展開「表」。展開索引所屬的表。右鍵單擊「索引」,再單擊「全部重新生成」。若要開始重新生成操作,請單擊「確定」。

⑺ 在sql中,建立索引用的命令是

創建索引的操作,可以使用alter命令或者create命令,其語法如下
alter table 表名 add index 索引名 (column_list) ;
alter table 表名 add unique (column_list) ;
alter table 表名 add primary key (column_list) ;
這三個分別為創建一般索引,唯一索引,主鍵索引,其中column_list為表的 欄位名稱,多個欄位可以使用逗號隔開。
create的方式創建索引,不能創建主鍵索引

create index 索引名on 表名 (column_list) ;
create unique index 索引名 on 表名 (column_list) ;

熱點內容
獲取資料庫信息 發布:2024-05-22 10:15:11 瀏覽:779
雲通信伺服器 發布:2024-05-22 10:12:10 瀏覽:400
job調用存儲過程 發布:2024-05-22 10:01:46 瀏覽:390
jsp導入java 發布:2024-05-22 10:00:50 瀏覽:180
2020年大眾探岳有什麼配置 發布:2024-05-22 10:00:50 瀏覽:121
李姓三才如何配置 發布:2024-05-22 10:00:07 瀏覽:748
七牛雲存儲圖片 發布:2024-05-22 09:57:09 瀏覽:753
java來源 發布:2024-05-22 09:37:44 瀏覽:677
linux查看桌面 發布:2024-05-22 09:16:47 瀏覽:252
伺服器災難如何恢復 發布:2024-05-22 09:16:02 瀏覽:695