在改欄位上添加索引就是了,一下是Oracle索引創建規則:
1、表的主鍵、外鍵必須有索引;
2、數據量超過300的表應該有索引;
3、經常與其他表進行連接的表,在連接欄位上應該建立索引;
4、經常出現在Where子句中的欄位,特別是大表的欄位,應該建立索引;
5、索引應該建在選擇性高的欄位上;
6、索引應該建在小欄位上,對於大的文本欄位甚至超長欄位,不要建索引;
7、復合索引的建立需要進行仔細分析;盡量考慮用單欄位索引代替:
A、正確選擇復合索引中的主列欄位,一般是選擇性較好的欄位;
B、復合索引的幾個欄位是否經常同時以AND方式出現在Where子句中?單欄位查詢是否極少甚至沒有?如果是,則可以建立復合索引;否則考慮單欄位索引;
C、如果復合索引中包含的欄位經常單獨出現在Where子句中,則分解為多個單欄位索引;
D、如果復合索引所包含的欄位超過3個,那麼仔細考慮其必要性,考慮減少復合的欄位;
E、如果既有單欄位索引,又有這幾個欄位上的復合索引,一般可以刪除復合索引;
8、頻繁進行數據操作的表,不要建立太多的索引;
9、刪除無用的索引,避免對執行計劃造成負面影響;
以上是一些普遍的建立索引時的判斷依據。一言以蔽之,索引的建立必須慎重,對每個索引的必要性都應該經過仔細分析,要有建立的依據。因為太多的索引與不充分、不正確的索引對性能都毫無益處:在表上建立的每個索引都會增加存儲開銷,索引對於插入、刪除、更新操作也會增加處理上的開銷。另外,過多的復合索引,在有單欄位索引的情況下,一般都是沒有存在價值的;相反,還會降低數據增加刪除時的性能,特別是對頻繁更新的表來說,負面影響更大。
❷ 為啥sql資料庫總是運行一段時間意外停止
情況說明:
1、出現此現象時,資料庫是正常的(做過一個實驗:新建了一個網站,程序與運行網站相
同,連接的資料庫也與運行網站連接的資料庫相同。當運行網站出現連不上資料庫現象時,
運行這個新網站,結果正常);
2、出現此現象時,IIS也是正常的,因為網站其他不調用資料庫的頁面是可以打開的。
3、當出現此現象時,查看資料庫里的連接,只有2到3個連接。
4、網站伺服器和資料庫伺服器放在同一台機器上。
5、與伺服器同在一個區域網中的其他PC機,不能通過域名來訪問該伺服器上的網站,只能
通過輸入內部IP來訪問。區域網中的PC可以訪問INTERNET上的其他網站。
6、伺服器使用的網卡只分配一個內部IP,同時綁定了一個外部IP.
7、曾經伺服器託管在IDC那裡,運行半年正常,後來把伺服器移到了自建的機房裡,運行2
個多月後出現這個問題,之後就不斷地出現此問題。
8、採用.NET/C#開發,並且程序中使用了關閉連接的命令。
❸ SQL一運行就卡死 應該從哪方面入手解決比較好
1. SQL優化的原則是:將一次操作需要讀取的BLOCK數減到最低,即在最短的時間達到最大的數據吞吐量。
調整不良SQL通常可以從以下幾點切入:
? 檢查不良的SQL,考慮其寫法是否還有可優化內容
? 檢查子查詢 考慮SQL子查詢是否可以用簡單連接的方式進行重新書寫
? 檢查優化索引的使用
? 考慮資料庫的優化器
2. 避免出現SELECT * FROM table 語句,要明確查出的欄位。
❹ Delphi連接sql資料庫過程界面會卡死怎麼辦
可以嘗試如下作法:
1. 自定義一個類,ADOConnection、ADOQUERY為其成員域成員動態創建;
2. 啟動線程去執行連接操作;此線程有一標志,當連接有結果(成功或失敗)後置TRUE;
3. 界面單元調用此線程,WHILE判斷線程標志為TRUE時,說明連接有結果。
while not customerThread.flag do begin
application.ProcessMessages.
end;
❺ 在mysql中運行sql腳本的時候 運行一半卡住了,提示 SQL 執行錯誤#1064.從資料庫的響應:是什麼問題 如何解
行不通是什麼,你為什麼不粘貼系統的提示的呢。
明明說了沒有密碼,為什麼還要 -P密碼 這個參數呢。
看你的提示信息,有可能是密碼錯誤,也有可能是SQL文件的語法錯誤。希望help you。reference51cto,365testing
❻ pl/sql中在命令窗口中執行sql腳本卡死
你看過這個腳本的內容么!是不是因為插入數據量過大?我在查詢的時候遇到過卡死的情況,那張表數據量過大!我查詢了所有的信息。如果是,插入數據過大的話,可以試著分次插入