iT邦幫忙

0

關於資料庫重整

sql

我們是做冷飲店的,店裡有一台點單用的電腦,用的是windows xp,資料庫是sql,最近發現在點單時按下結帳時(也就是資料寫入資料庫時),開始有延遲現象,做了磁碟重組也沒改善,磁區的空間也還很大,也確定沒中毒,系統一切正常,如果找軟體公司來可能會再花一比錢,所以想先問問各位前輩,有沒有軟體可以自已做資料庫的重整,來恢復效能,或是說有其它的方法呢?

jamesjan iT邦高手 1 級 ‧ 2008-12-22 08:06:04 檢舉
我覺得要看您對於系統了解了多少
貿然進行,到時候出問題,可能要花費的成本更大

可以先電話問一下軟體公司,這種情況會是什麼問題?
可以不透過程式修改的方式解決嗎?

問清楚系統是什麼架構,sql 指的是哪一種資料庫?
如果是 Access (.mdb)or Paradox (.db) 都有外部工具可以重整資料庫
先確定是哪一種資料庫,這樣大家會比較好給建議
danfu iT邦新手 4 級 ‧ 2008-12-24 18:21:44 檢舉
發表一下小弟的淺見,可以看一下該資料庫的LDF檔是不是太大,如果太大,建議使用SQL語法(Backup Transaction~~)將其Log清除後,再使用壓縮資料庫的方式,或許可以讓速度快一些~~
32
灌籃高手
iT邦高手 1 級 ‧ 2008-12-19 18:11:30
最佳解答

看起來有可能是資料變多所以速度變慢了,也許把一些過期的資料清一清,但如果SQL不熟或沒有介面的話,還是找軟體公司來做比較保險!另外就是換一台比較快的電腦

ps.資料庫也有可能是用access

24
julie8tw
iT邦研究生 4 級 ‧ 2008-12-19 18:02:01

SQL 是 MS SQL OR MY SQL ,是裝在同一台機器上OR不同機器上,我想是資料多了
需要整理OR加INDEX吧

你好,是MS SQL,裝在同一台機器上,不好意思請問一下,OR加INDEX是什麼呢?

tom6507 iT邦大師 1 級 ‧ 2008-12-20 07:56:18 檢舉

OR加INDEX是什麼呢=或者加上索引的意思

26
lurommou
iT邦研究生 4 級 ‧ 2008-12-20 08:38:51

若對原作者的程式不清楚的話,建議不要先動資料庫,MS-SQL 除非你的是MSDE(2000) 或 SQL EXPRESS(2005&2008),有先天的限制(例:RAM只支援1G);一般用企業版可以處理的資料量很大.
1.先看看是否電腦安裝了其它軟體後發生,像Windows update 之後也有可能會影响
2.若有能力重裝電腦,可以找另一台電腦乾淨的重裝,並把資料及程式移過去
3.安裝資料庫的修正更新程式,有時可能是MS-SQL SERVER 本身的問題,造成資料交易延遲

PS.上面大大說的加INDEX 也必須要了解原程式碼,加上正確INDEX 有可能可以加快,若亂加會導致效能變很低

24
oxox
iT邦新手 1 級 ‧ 2008-12-20 08:44:52

要不要說說您機器的配備, 如多少MB的RAM,CPU多少,HDD怎麼配置,甚至SQL的資料檔大小等...
因寫入久,不一定是資料多喔...
要瞭解按下『結帳』按鈕實際上作了哪些事情,才好分析該由那邊下手...
我同意樓上說的,交給專業吧...
==> 加上 index 有助於查詢的速度,只要是經過分析得到的結果 (表示不要隨性加)

18
lukeshei
iT邦新手 3 級 ‧ 2008-12-21 01:21:26

加上index會讓寫入的效率變差,如果是我遇到這類的問題,除了index...以外;我會先檢查磁碟的問題,如果你把DB File 放在不同的實體磁碟,尤其是把index 跟DB File分開,你會發現效率差很多(mssql可以這樣做嗎?我不太記得,記憶中一個DB File也能分散在不同的磁碟),另外;如果磁碟不需要大 ;小容量的數顆最好

20
old7ada
iT邦研究生 2 級 ‧ 2008-12-22 10:27:51

硬體效能(CPU, RAM),硬碟架構(raid 0,1,5,1個channel 裝1顆或2顆硬碟),資料庫儲存結構(MDF & LDF 是否放在相同實體硬碟),程式寫的架構是否與SQL的table相輔相成(table架構沒設計好,用一堆join),程式本身寫的沒效率(資料一多就顯而易見),SQL的select寫在程式裡,select包select包一堆,Index有沒建立,store procedule有沒利用到,LDF是否太大而佔太多硬碟空間,MDF有沒定期壓縮或做備份,硬碟是否壞軌,等等等,太多太多因素可以查。
我想大家說這麼多專業的東西,因為提問者給的資訊也不多,可能問題的癥結也不知在哪,
也無法解決問題,提問者也只是想不要花太多錢,在這發問一下,想不到大家的專業回答會讓他更一頭霧水。他應該只是想按下結帳按鈕後速度快一點,或回到以前的速度。
但事實是並沒有想像的那麼簡單,建議提問者找原本提供軟體的公司處理較妥當。找外面的專業廠商或許能有幫助,但若是牽扯到原本的點餐系統,還是或有障礙的。

18
bestlong
iT邦研究生 5 級 ‧ 2008-12-22 11:55:45

任何的資訊系統都是有維護成本的,小的不花最後可能會花大的
真的建議你找原廠來服務花個小錢提升顧客滿意度
另外具水準的程式本身應該會有系統維護的功能例如:備份資料、資料重整、歷史資料歸檔或刪除,可以研究看看是否能解決問題。

MSSQL 本身有提供維護工具,可以檢查資料庫與重整索引
但這只是基本的保養程序,不一定可以解決你的問題
有很多的狀況是需要足夠的經驗與技術的分析才能確定問題點

brianc iT邦研究生 1 級 ‧ 2008-12-22 12:00:33 檢舉

就像車子也是要定期保養的,如果等到出問題,通常損失的就不是金錢可以衡量了

我要發表回答

立即登入回答