SQL Server 2000重建索引的實際操作流程

2020-12-17 中國軟體網

以下的文章主要向大家介紹的是SQL Server 2000重建索引的實際操作流程,以及對實際操作中容易出現的錯誤的描述,我們大家都知道在資料庫中創建索引的實際操作過程中,查詢所使用的索引信息存儲在索引頁中。

連續索引頁由從一個頁到下一個頁的指針連結在一起。當對數據的更改影響到索引時,索引中的信息可能會在資料庫中分散開來。SQL Server 2000重建索引可以重新組織索引數據(對於聚集索引還包括表數據)的存儲,清除碎片。這可通過減少獲得請求數據所需的頁讀取數來提高磁碟性能。

在 Microsoft? SQL Server? 2000 中,如果要用一個步驟重新創建索引,而不想刪除舊索引並重新創建同一索引,則使用 CREATE INDEX 語句的 DROP_EXISTING 子句可以提高效率。這一優點既適用於聚集索引也適用於非聚集索引。

以刪除舊索引然後重新創建同一索引的方式重建聚集索引,是一種昂貴的方法,因為所有二級索引都使用聚集鍵指向數據行。如果只是刪除聚集索引然後重新創建,則會使所有非聚集索引都被刪除和重新創建兩次。

一旦刪除聚集索引並再次重建該索引,就會發生這種情形。通過在一個步驟中重新創建索引,可以避免這一昂貴的做法。在一個步驟中重新創建索引時,會告訴 SQL Server 要重新組織現有索引,避免了刪除和重新創建非聚集索引這些不必要的工作。

該方法的另一個重要優點是可以使用現有索引中的數據排序次序,從而避免了對數據重新排序。這對於聚集索引和非聚集索引都十分有用,可以顯著減少SQL Server 2000重建索引的成本。另外,通過使用 DBCC DBREINDEX 語句,SQL Server 還允許對一個表重建(在一個步驟中)一個或多個索引,而不必單獨重建每個索引。

DBCC DBREINDEX 也可用於重建執行 PRIMARY KEY 或 UNIQUE 約束的索引,而不必刪除並創建這些約束(因為對於為執行 PRIMARY KEY 或 UNIQUE 約束而創建的索引,必須先刪除該約束,然後才能刪除該索引)。例如,可能需要在 PRIMARY KEY 約束上重建一個索引,以便為該索引重建給定的填充因子。

以上的相關內容就是對SQL Server 2000重建索引的介紹,望你能有所收穫。




免責聲明:

本站系本網編輯轉載,會儘可能註明出處,但不排除無法註明來源的情況,轉載目的在於傳遞更多信息,並不代表本網贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請在30日內與本網聯繫, 來信: liujun@soft6.com 我們將在收到郵件後第一時間刪除內容!

[聲明]本站文章版權歸原作者所有,內容為作者個人觀點,不代表本網站的觀點和對其真實性負責,本站擁有對此聲明的最終解釋權。

相關焦點

  • SQL Server的Descending Indexes降序索引
    OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO 插入測試數據DECLARE @i INT;DECLARE @sql
  • SQL Server 2014 可更新聚集列存儲索引
    該行存儲在物理磁碟上也是連續的,因此可以利用Seek操作以非常低的成本完成選擇性高的查詢;而列存儲索引同一行的每一列並不在物理上連續,並且列存儲聚集索引中並沒有“主鍵”的概念,因此並不存在Seek操作。因此並不適用於OLTP類操作。
  • SQL Server中索引使用及維護
    所以如果建 立了合理的索引,優化器就能利用索引加速數據的查詢過程。不過,索引並不總是提高系統的性能,在增、刪、改操作中索引的存在會增加一定的工作量,因此,在 適當的地方增加適當的索引並從不合理的地方刪除次優的索引,將有助於優化那些性能較差的SQL Server應用。實踐表明,合理的索引設計是建立在對各種查詢的分析和預測上的,只有正確地使索引和程式結合起來,才能產生最佳的優化方案。
  • SQL Server 安裝步驟
    本文通過圖文並茂的形式給大家介紹了SQL server 2016 安裝步驟,非常不錯,具有參考借鑑價值,需要的朋友參考下吧。
  • 優化SQL查詢:如何寫出高性能SQL語句
    所以很顯然,聚集索引沒有建在表的順序欄位上,該表容易發生頁分裂。曾經碰到過一個情況,一位哥們的某張表重建索引後,插入的效率大幅下降了。估計情況大概是這樣的。該表的聚集索引可能沒有建在表的順序欄位上,該表經常被歸檔,所以該表的數據是以一種稀疏狀態存在的。
  • SQL Server 2014
    解壓「cn_sql_server_2014_X64.iso」64位系統解壓「cn_sql_server_2014_X64.iso」。右擊「cn_sql_server_2014_X64.iso」點擊「解壓到cn_sql_server_2014_X64.iso」。
  • SQL Server 2019安裝教程
    1、選中下載的【sql_server_2019】軟體壓縮包,滑鼠右擊選擇【解壓到sql_server_2019】。2、雙擊打開解壓後的【sql_server_2019】文件夾。3.滑鼠右擊【sql_server_2019.iso】,選擇【打開方式】-【Windows資源管理器】。
  • 5分鐘學會SQL SERVER行轉列、列轉行,PIVOT操作
    與 PIVOT 執行的操作相反,UNPIVOT 將表值表達式的列輪換為行(即列轉行)。但是需要注意的是,UNPIVOT 並不完全是 PIVOT 的逆操作。PIVOT 執行聚合,並將多個可能的行合併為輸出中的一行。UNPIVOT 不重現原始表值表達式的結果,因為行已被合併。
  • 不一樣的 SQL Server 日期格式化
    output:DateTime Result Custom Number Result ---- 27/09/2012 123-45-6789 (1 row(s) affected) Referencehttps://docs.microsoft.com/en-us/sql
  • 面對MySQL 查詢索引失效,程式設計師的六大優化技巧!
    不知道你有沒有碰到過這種情況,一條創建了索引的SQL語句在查詢過程中卻沒有使用索引,或是一條本來可以執行的很快的語句,卻由於MySQL選錯了索引,而導致查詢速度變得很慢?充分優化和利用索引能夠大大提高數據的查詢效率,但是在實際的應用中MySQL可能並不總會選擇合適且效率高的索引。
  • SQL 資料庫語句
    刪除索引:drop index idxname註:索引是不可更改的,想更改必須刪除重新建。  nvarchar(600)  set @sql=’select top』+str(@end-@start+1)+』+from T where rid not in(select top』+str(@str-1)+』Rid from T where Rid>-1)』  exec sp_executesql @sql注意:在top後不能直接跟一個變量,所以在實際應用中只有這樣的進行特殊的處理
  • SQL Server索引管理之六大鐵律
    【IT168 技術文檔】索引是以表列為基礎的資料庫對象。索引中保存著表中排序的索引列,並且紀錄了索引列在資料庫表中的物理存儲位置,實現了表中數據的邏輯排序。通過索引,可以加快數據的查詢速度和減少系統的響應時間;可以使表和表之間的連接速度加快。  但是,不是在任何時候使用索引都能夠達到這種效果。
  • SQL查詢優化:詳解SQL Server非聚集索引
    【IT168 技術】在SQL SERVER中,非聚集索引其實可以看作是一個含有聚集索引的表.但相比實際的表而言.非聚集索引中所存儲的表的列數要窄很多,因為非聚集索引僅僅包含原表中非聚集索引的列和指向實際物理表的指針。
  • 使用Python操作SQL Server資料庫
    sysoledbusers 僅在主資料庫 連結伺服器登陸信息sysprocesses 僅在主資料庫 進程sysremotelogins 僅在主資料庫 遠程登錄帳號syscolumns 每個資料庫 列sysconstrains 每個資料庫 限制sysfilegroups 每個資料庫 文件組sysfiles 每個資料庫 文件sysforeignkeys 每個資料庫 外部關鍵字sysindexs 每個資料庫 索引
  • 如何使用 SQL Server FILESTREAM 存儲非結構化數據?
    可以通過WIN32 API對這些單獨的文件進行操作。T-SQL語句適用。通過FILESTREAM存儲在文件系統中的對象已經取消了VARBINARY (MAX)列的2GB文件大小限制。為了保持數據的一致性,每個SQL FILESTREAM操作都必須是事務的一部分。MARS(多個活動結果集Multiple Active Result Sets)連接具有批處理事務的特殊規則,而T-SQL BEGIN TRANSACTION語句違反了這些規則。為了避免這個問題,應用程式客戶端應該使用合適的事務管理API來表示類System.Data.SqlClient.SqlTransaction。
  • 超全sql語句全集值得收藏
    首頁 > 語言 > 關鍵詞 > 收藏最新資訊 > 正文 超全sql語句全集值得收藏
  • 如何將SQL Server中的表變成txt文件
    如果執行大容量複製操作的用戶擁有指定的表或視圖,則 owner 是可選的。如果沒有指定 owner 並且執行大容量複製操作的用戶不擁有指定的表或視圖,則 Microsoft® SQL Server™ 2000 將返回錯誤信息並取消大容量複製操作。
  • Windows下Laravel 7.0連接sql server - php中文網
    laravel 7.0 默認連接 mysql, 同時項目需要連接 sql servel (另一個系統應用)$users = DB::connection (『php_sqlsrv』)->select (…);
  • mysql常用sql語句總結
    刪除視圖: drop view 視圖名;查看表詳細信息: show table status;能看出是否是視圖查看某張表詳細信息: show table status where name=』表名』;(/G豎著排列)改表名: rename table oldname to newname;清空表數據: truncate 表名;(相當於刪除表,再重建兩步操作
  • SQL 查詢優化之 WHERE 和 LIMIT 使用索引的奧秘
    第一,acct_id和create_time都有索引,不應該出現5s查詢時間這麼慢啊 仔細觀察會發現,索引只使用了idx_create_time,沒有用到idx_acct_id。這能解釋第一條sql很慢,因為where查詢未用到索引,那麼第二條為什麼這麼快?看起來匪夷所思,其實搞清楚mysql查詢的原理之後,其實很簡單。我們來看這2條sql查詢,都用到了where order by limit。