㈠ 關於sql語句Insert、select、update的優化問題,在線等,回答得好提高懸賞!
你問的這個問題本身都是有問題的,你列出這3個基本的增加,修改,查詢語句本身就是最基本的SQL語句。優化也針對的是復雜的SQL語句還有根據相關查詢的具體情況來判斷優化的。
所以你問的問題等於沒有問,我回答了你這么多不知道你明不明白。
㈡ 請問下update set select 以下sql語句能否優化下,執行效率如何;
不知道您的po_match_t表有多大的數據量,如果數據量比較大,可是試著建索引,把查詢用到的欄位建成索引,會大大提高查詢的速度,另外你的主表yrljc_wldd數據量有多大?如果大的話也可以把ch建成索引。
另外也可以用update table set column = .. from table, table1 where table.column = table1.column這樣的方式來更新,或許也比你這個能快一些。
㈢ sql update 佔用cpu 怎麼優化
topas/top看下是不是oracle進程佔用的cpu。然後查看下oracle資料庫中都在跑哪些語句。多數都是效率較差的sql語句導致cpu使用率過高的,一般通過優化sql即可解決。可用如下語句查看哪些執行時間較長的sql:Selectb.USERNAME,b.SID,a.SQL_ID,a.SQL_TEXT,a.sql_fulltext,b.EVENT,a.executions,--trunc(((decode(a.EXECUTIONS,0,0,a.cpu_time/a.executions))/10000))c_time,---單位零點秒trunc(((decode(a.EXECUTIONS,0,0,a.ELAPSED_TIME/a.executions))/10000))e_time,--trunc(cpu_time/10000)cpu_time,trunc(a.ELAPSED_TIME/10000)ELAPSED_TIME,a.DISK_READS,a.BUFFER_GETS,b.MACHINE,b.PROGRAMFromv$sqlareaa,v$sessionbWhereexecutions>=0Andb.status='ACTIVE'anda.SQL_ID=b.SQL_ID--andb.USERNAME='DB_WTDZ'--andtrunc(((a.cpu_time/a.executions)/1000000))>5OrderBye_timedesc
㈣ 簡單的SQL Update 語句變的超級慢
怎麼都沒看出更新哪個欄位呢?
㈤ 如何提升update語句的性能(MySQL)
update ... select ... from ... where ... 你的瓶頸是在查詢子句,並不是update的問題,優化完查詢執行自然會上去。 -------------------------- 優化SQL查詢的原則如下: 1、使用索引來更快地遍歷表。 預設情況下建立的索引是非群集索引,但有時它並不是最佳的。在非群集索引下,數據在物理上隨機存放在數據頁上。合理的索引設計要建立在 對各種查詢的分析和預測上。一般來說: a.有大量重復值、且經常有范圍查詢( > ,< ,> =,< =)和order by、group by發生的列,可考 慮建立群集索引; b.經常同時存取多列,且每列都含有重復值可考慮建立組合索引; c.組合索引要盡量使關鍵查詢形成索引覆蓋,其前導列一定是使用最頻繁的列。索引雖有助於提高性能但不是索引越多越好,恰好相反過多的索引會導致系統低效。用戶在表中每加進一個索引,維護索引集合就要做相應的更新工作。 2、在海量查詢時盡量少用格式轉換。 3、ORDER BY和GROPU BY使用ORDER BY和GROUP BY短語,任何一種索引都有助於SELECT的性能提高。 5、任何對列的操作都將導致表掃描,它包括資料庫函數、計算表達式等等,查詢時要盡可能將操作移至等號右邊。 6、IN、OR子句常會使用工作表,使索引失效。如果不產生大量重復值,可以考慮把子句拆開。拆開的子句中應該包含索引。
記得採納啊
㈥ 多個SQL語句同時Update怎麼優化急!!!
--forM$SQL2k+
UPDATEASET
CMEMBER=B.cnt,
MIDDLE_NUM=B.m_cnt
FROMG_BASICA
JOIN(
selectGROUPID
,count(1)ascnt
,count(casemiddle_flag
when'是'then1end)asm_cnt
fromg_member
whereFLAG='1'
groupbyGROUPID
)asBonB.GROUPID=A.GROUPID
WHEREA.FLAG='1'
ANDA.GROUPID='{0}'
㈦ SQL:這個update怎麼優化能快一點呢
你這個地方什麼意思啊?
1
e.EVALUATION_RECORD_ID in ('','','','')
弄那麼多空字元幹嘛?弄一個不就行了嗎?
已經都這么簡單了,沒什麼優化餘地,頂多在你where條件的兩個欄位加索引
㈧ SQL如何提高UPDATE語句運行速度
就是很慢,用update就是這樣
給你個意見,可以把結果insert 到一個新表裡,在rename表名到舊的表,很快
㈨ SQL的update語句如何優化
你這個地方什麼意思啊?
e.EVALUATION_RECORD_IDin('','','','')
弄那麼多空字元幹嘛?弄一個不就行了嗎?
已經都這么簡單了,沒什麼優化餘地,頂多在你where條件的兩個欄位加索引
㈩ mysql千萬級數據update怎麼優化
提問:何設計或優化千萬級別表外其信息覺題點范簡單說該何做於存儲設計必須考慮業務特點收集信息:
1.數據容量:1-3內概少條數據每條數據概少位元組;
2.數據項:否欄位些欄位值否經更新;
3.數據查詢SQL條件:哪些數據項列名稱經現WHERE、GROUP BY、ORDER BY句等;
4.數據更新類SQL條件:少列經現UPDATE或DELETE WHERE句;
5.SQL量統計比:SELECT:UPDATE+DELETE:INSERT=少
6.預計表及相關聯SQL每總執行量何數量級
7.表數據:更新主業務 查詢主業務
8.打算採用資料庫物理伺服器及資料庫伺服器架構
9.並發何
10.存儲引擎選擇InnoDBMyISAM
致明白10問題至於何設計類表應該都清楚
至於優化若指創建表能變表結構建議InnoDB引擎利用點內存減輕磁碟IO負載IO往往資料庫伺服器瓶頸
另外優化索引結構解決性能問題建議優先考慮修改類SQL語句使更快些已靠索引組織結構式前提 索引已經創建非若讀主考慮打query_cache 及調整些參數值:sort_buffer_size,read_buffer_size,read_rnd_buffer_size,join_buffer_siz
更信息參見:
MySQL資料庫伺服器端核參數詳解推薦配置
紙談兵說我思路及我解決拋磚引玉
我近解決問題
我現公司三張表5億數據每張表每增量100w
每張表概10columns左右
面我做測試比
1.首先看engine,數據量情況沒做區情況
mysiam比innodb讀情況效率要高13%左右
2.做partition讀mysql官文檔其實於partition專門myisam做優化於innodb所數據存ibdata面所即使看schema變其實沒本質變化
區於同physical disk面情況提升概1%
區同physical disk我三同disks提升概3%其實所謂吞吐量由素決定比explain parition候看record區每區都其實本質沒解決讀問題提升寫效率
另外問題於區張表三column都經用於做查詢條件其實件悲慘事情沒辦所sql做針性區mysql官文檔說間做區且用間查詢恭喜
3.表主要用讀寫其實問題充應該問寫入候同並發查詢我問題比較簡單mongodb shredding支持能crushmysql所通情況9am-9pm寫入情況候我做 viewview基於近插入或者經查詢通做view離讀取說寫table讀進行邏輯判斷前view操作
4做些archive table比先些表做已統計析通已析+增量解決
5用mysiam問題要注意.configure候加max index length參數候record數於制定度候indexdisable