全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1326
推到 Plurk!
推到 Facebook!

請問TTABLE的INDEX問題

尚未結案
answer
一般會員


發表:17
回覆:10
積分:5
註冊:2004-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-08 23:39:34 IP:61.64.xxx.xxx 未訂閱
BCB可以用DATABASE DESKTOP來對某一個FIELD做INDEX,(這樣說應該對吧),但是我只要一增加一筆新的資料到這個TABLE後,INDEX就會亂掉(出現INDEX OUT OF DATE),也就是說我必須要重新到DATABASE DESKTOP建立一次INDEX,還是說我必須要在資料POST之前做什麼動作讓INDEX加入此筆資料。
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-10 10:55:50 IP:211.162.xxx.xxx 未訂閱
Hi,answer,您好! 小弟的一點淺見,請您不妨看看,或許有所啓迪: 索引(Index)的引入,主要作用是加快查詢的效能,同時能夠加速Order ByGroup By子句的操作 一個表索引(Table Index)是由一組頁(Page)組成,這些頁構成了一個樹型結構。根頁通過指向另外兩個頁,把一個表的記錄從邏輯上分成兩部分。以此類推,直達葉子頁。 而索引有兩種類型: ● 聚簇索引 非聚簇索引 聚簇索引(Clustered Index),可以保證表中的資料的物理存儲順序和排列順序相同,它使用Table中的某一列或多列來排序記錄. 留意幾點: ① 索引值是安裝有序的次序排列 ② 聚簇索引非常像一本書的目錄,目錄的順序也實際的頁碼順序是一致的 ③ 每個Table都只能有一個聚簇索引,因爲一個Table中的記錄只能以一種物理順序存放 ④ 通常情況下我們是對一個Table按照主碼(關鍵字 Primary key)欄位(Field)建立聚簇索引。但是也可以對其他類型的欄位(Field)建立聚簇索引,例如字元型,數值型和日期時間型欄位等 非聚簇索引,Table的物理順序與索引順序不同,既Table的資料不是按照索引排序。非聚簇索引就像一本書後的標準索引表一樣,索引表中的順序通常與實際的頁碼順序不一致,一本書可以有多個索引表啊!例如,它可以同時有主題索引和作者索引。 留意幾點: ① 雖然非聚簇索引可以提高從Table中取資料的速度,但它也會降低向表中插入和更新資料的速度 ② 每當用戶改變了一個建立了非聚簇索引的表中的資料時,必須同時更新索引,因此對一個Table建立非聚簇索引時要慎重啊 ③ 如果您的Table需要頻繁的更新資料,那麽就不要對它建立太多的非聚簇索引 ④ 如果硬碟和記憶體足夠大,就不用考慮空間問題了,隨便用,哈哈 既然有兩種索引,不妨來對比一下: ● 速度<> 從建立了聚簇索引的> ● 數量<> 對聚簇索引的主要限制就是一個> ● 空間<> 非聚簇索引需要大量的硬碟空間和記憶體。 下面以 class="code"> Create [Unique] [ Clustered | NonClustered ] Index <索引名> on { 表名 } (欄位 [ ASC | DESC ] [ ,...n ]) 說明: [Unique]:指定創建的索引是唯一的索引,如果不用這個關鍵字,創建的索引就不是唯一索引. [Clustered | NonClustered]:指定被創建索引的類型。使用Clustered來創建聚簇索引,使用NonClustered來創建非聚簇索引。兩個中只能選一個哦! 應用: Create Clustered Index Index_UserID on UserTable(UserID) 這是在一個名爲UserTable的表中創建了索引名爲Index_UserID的索引,假設UserTable在創建時沒有使用Parimary Key短語 Create NonClustered Index Index_UserID on UserTable(UserID) 功能同上,就只是創建的是非聚簇。 好啦,回過頭來看看您的疑惑:
引言: BCB可以用DATABASE DESKTOP來對某一個FIELD做INDEX,(這樣說應該對吧),但是我只要一增加一筆新的資料到這個TABLE後,INDEX就會亂掉(出現INDEX OUT OF DATE),也就是說我必須要重新到DATABASE DESKTOP建立一次INDEX,還是說我必須要在資料POST之前做什麽動作讓INDEX加入此筆資料。
小弟我鬥膽揣測,您是否是建立的是非聚簇索引呢(Database Desktop默認設置好象是非聚簇吧),如果是請參考非聚簇索引的②。聚簇索引一經建立,就由系統使用和維護它,不需要我們去進行維護(真是方便了我這樣的懶人,哈哈) > ================================= <>人生在勤,不索何獲 <>業精於勤荒於嬉,行成於思毀於隨 <>臨淵羡魚不如退而結網 發表人 -
------
人生在勤,不索何获?
系統時間:2024-05-05 2:54:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!