C_Sharp 板


LINE

※ 引述《bernachom (Terry)》之銘言: : 最近和朋友聊到這個問題 : 討論的不是SQL的語法,是說,在C#裡,怎麼去讀這個字串會比較快呢? : 例如說: : 這樣子寫 : string dbconnection = "SELECT A FROM B WHERE C ='0'"; : 然後也可以這樣子寫 : : string AA="SELECT A ", BB="FROM B ",CC="WHERE C='0' "; : string dbconnection =AA+BB+CC; : 這樣子寫法之類的 : 但是好像用類似第二種方式,拆開再合併執行會快一些? : (我們合併是用這個AppendFormat) : 雖然不太懂原因,但是好像快一些 : 想詢問的是,SQL都是拆開再合併,這樣子的寫法會比較快嗎? : 有沒有在執行上比較有效率的方式呢,因為希望能讓SQL再快一些 : 謝謝教導了 就我所理解來討論這個問題: 1. 字串的操作最好以stringbuilder來作處理,你可能要先去google一下,stringbilder 的用處及優點在哪?以及字串的操作如果不用stringbuilder會有哪些壞處及好處? 2. SQL的執行快慢並不在於程式裡執行字串的操作,你應該要加強的是sql語法的優化, 如果你目前正在tunning sql查詢,給你個建議 再去google 『sql 執行計畫』,你可 以得知你的SQL查詢的執行成本,來去作語法優化的動作 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.246.72.136
1F:推 jimmy701010:以上兩點都正確 08/24 23:48
2F:→ bernachom:請教一下,如果是靜態字串的話,那把字串拆開相加,還會 08/25 00:04
3F:→ bernachom:比不拆開來得快嗎? 08/25 00:04
4F:→ bernachom:就像是我第一個和第二個SQL寫得這個樣子~ 08/25 00:04
5F:→ bernachom:第一個都不拆的話,照理說不是應該比不拆開來的快嗎? 08/25 00:05
首先,這個問題你google stringbuilder就會有答案。 再來,我想程式執行的快慢,在SQL Statement並不會因為你將字串怎麼拆怎麼接會有 明顯差異,因為一切都跟『記憶體』有關。 以前受饋於版上眾位熱心人士.... 我將解答PO在下面好了 動態字串操作時,會產生很多不必要的記憶體,如下: string a = "SELECT *" a = a + " FROM TEST" 記憶體實際上 為了這個操作 NEW了2~3個參考 所以才會推薦你動態字串都用string builder 再來你這邊屬於靜態字串操作,但是字串如何操作,與SQL的運作無關,畢竟字串組 一組後會送到SERVER作編譯動作,重點是在SQL語法方面。 如果您指的是系統的效率的話,我想字串會這樣拆主要是為了維護方便,至於效能.. 我想人體是不會查覺得出來。 ※ 編輯: MacPerson 來自: 111.246.72.136 (08/25 00:13) ※ 編輯: MacPerson 來自: 111.246.72.136 (08/25 00:29) ※ 編輯: MacPerson 來自: 111.246.72.136 (08/25 00:30)
6F:→ bernachom:最後四行,點出我的問題了,我正在想說,為什麼我看大家 08/25 00:35
7F:→ bernachom:都拆開,原因應該是維護方便 08/25 00:36
8F:→ bernachom:謝謝您的熱心幫忙 :) 08/25 00:36
9F:→ Litfal:單指.net用SQL的話,不要再自己串查詢字串了..EF、Linq都好 08/26 16:25
10F:→ Litfal:真要用ADO.NET的話,用Parameter也好..... 08/26 16:26
11F:→ a926:組SQL字串 太容易有Injection攻擊了 可以考慮L大的方式 08/27 11:15
12F:→ bernachom:謝謝指導:) 這幾個月才開始學而已,感謝幫忙(筆記) 08/27 20:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP