查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
chrixtal

 發表於 2008-2-19 02:53 PM

一般來說,趕案子的時候,根本顧不了效能的部份,應該是說
資料正確 > 畫面功能,美觀 > 讀取速度 的重要性

所以通常都是案子快結束還有剩下時間的話(通常不可能)或是日後維護的時候再來做 最佳化

不過這也就是 高工 和一般工程師的差別 ^_^


PresarioNeil

 發表於 2007-6-1 01:12 PM

http://www.1keydata.com/tw/sql/sql.html 這網站真的很棒!!
感謝樓主分享!


aleck

 發表於 2007-3-4 11:34 PM


引用:
lch2003寫到:
自從上次被 熊小 叫我再學習 SQL,
結果我找到「SQL語法入門
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」 )

還真不賴, 整理的真好!
入門及進階都含括了.
剩下優化的部份就靠各位多多提供了!
感恩! 感恩!


ithinkurdumb

 發表於 2007-3-4 01:11 AM

補充一下 (都是針對MS SQL的情況):

1.
其實跟database拉資料的時候,
如果在進for loop之前就把connection建立好,
結束for loop之後才把connection結束,
在for loop裡面讀取100次跟1000次在速度上的差別是不大的.

2.
不要因為懶就用SELECT * FROM是狠重要的,
常常在maintain程式的時候發現明明只要1, 2個column的資料,
卻一次抓了所有column的資料回來.
讀取的時間影響倒是還好 (因為db server的memory通常相當大),
重要的是浪費了好幾倍的memory.

另外,
如果要做簡單的排序這些動作,
最好能夠直接在SQL query中處理.
第一個是省下記憶體,
第二個是效率也會比較好.

有機會再補充囉.


steven211

 發表於 2006-7-31 09:08 PM


引用:
lch2003寫到:
自從上次被 熊小 叫我再學習 SQL,
結果我找到「SQL語法入門
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」 )

真的是蠻進階的連union都出來了
關聯式資料庫我覺得重要的還是觀念問題,
語法方面不要跑預存程序的話大部份都一樣,
我的經驗是這樣,
1.盡量減少連線次數 :
    比如時常為了跑複雜的表格運算等等的會跑一個大迴圈,假設一千筆資料,在這
    個大迴圈內又每圈再跟資料庫查詢一次資料,這個會極大伏度的降低效率。
2.與資料庫連線時只抓取所需要的資料即可,
   例如Select * From xxxTable這樣把所有欄位都一次select出來自然會比較慢,
   這其實牽涉到硬碟原理,
 假設我的硬碟是sata 傳輸速率為80mbps好了,但是因
   為多抓取一個欄位,每個欄位大概有1kbytes的資料,一次又抓取了10000筆資料
 ,實際上佔用的硬碟空間可能是10000*1kbytes=10000kbytes=10mbytes = sata硬碟傳輸速度(80mbps/8=10mbytes),多抓取一個欄位的資料就會多出1s的時間,當然實際上會根據各家的檔案系統及資料庫效率會有所差異,
3.cpu的速度>RAM>>HDD:
 就是因為這樣才會有許多快取機制,硬碟sata理想通道寬度是150mbps sata2是300mbps,現在隨便一台電腦的記憶體寫入速度都有3g以上,更何況硬碟又有硬碟磁頭所造成的效能瓶頸,除非砸大本錢去買光纖通道的storage(最高可達4gmbps),不然其實程式方面多下點功夫還是值得的。
我遇到很多軟體工程師基本上是不想碰硬體這一塊的,但是我覺得多了解一些硬體原理絕對會增加程式的執行效率(雖然我功力還是很弱)。


jocosn

 發表於 2006-7-31 01:22 AM

若是要用 MySQL,用這種 GUI 介面,脫拉就完成 SQL 語法雛型:
http://www.mysql.com/products/to ... /build_queries.html
還有語法可直接查詢。

query browser 顯示中文若出現亂碼,可到 mysql administrator 裡設定
Startup Variables>>Advanced>>Def. Chr Set

5.1 中文版手冊
http://twpug.net/docs/mysql-5.1/

SQL 每家都有差異,建議選一家資料庫後再去學它的 SQL。不然可能很容易陣亡。

[jocosn 在  2006-7-31 07:11 AM 作了最後編輯]


laikyo

 發表於 2006-7-29 03:21 AM

MySQL中文參考手冊
http://linux.tnc.edu.tw/techdoc/mysql/mysql_doc/manual_toc.html
初學就熟用四大語法
SELECT
INSERT INTO
UPDATE
DELETE FROM


lch2003

 發表於 2006-7-28 06:16 PM

自從上次被 熊小 叫我再學習 SQL,
結果我找到「SQL語法入門
大家參考一下
( 基本上這個不算是「入門」, 而是「進階」 )





所在時區為 GMT+8, 現在時間是 2024-11-1 07:56 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.022534 second(s), 7 queries , Qzip disabled