一條update語句的優化
1.首先給出update語句
UPDATE T_TEST A SET A.MANA_CODE = (
SELECT MANA_CODE FROM T_TEST2 B WHERE A.APPLY_NO = B.APPLY_NO
)
WITH UR;
2.分析:
這條語句執行10多分鐘都沒反應。T_TEST2表只有300多條記錄,T_TEST表卻有6萬多條資料。很明顯主表資料有點多,應該給主表新增條件減少資料量!
3.優化SQL
UPDATE T_TEST A SET A.MANA_CODE = (
SELECT MANA_CODE FROM T_TEST2
)
WHERE EXISTS(
SELECT '1' FROM T_TEST2 C WHERE A.APPLY_NO = C.APPLY_NO
)
WITH UR;
4.這條SQL一執行,結果只花了幾秒鐘就搞定了!
相關推薦
一條update語句的優化
1.首先給出update語句 UPDATE T_TEST A SET A.MANA_CODE = ( SELECT MANA_CODE FROM T_TEST2 B WHERE A.APPLY_NO = B.APPLY_NO ) WITH UR; 2.分析: 這條
優化一條UPDATE語句
最近見到一條開發人員寫的UPDATE語句, 覺得沒什麼不對, 可又覺得有地方不對, 因為效能低下. UPDATE A SET (COL2, COL3) = (SELECT COL1,'T' FROM B WHERE B.COL1=A.COL1) WHERE EXISTS (SELECT B
Mysql 一條update語句,更新多張表(存在關聯的表)
UPDATE table1 LEFT JOIN table2 ON table1.xx=table2.xx (關聯的欄位) SET table1.xx=value,table2.xx=value (update value)WHERE table1.xx=xx
mysql 一條update語句實現兩個表資料合併
實現兩個表的資料合併。比如,有全校所有人的09年的成績,現在想把10年的某一科的成績新增進去。 其實很簡單,一條語句就能搞定。 當然了,實現的方法有太多。這裡說一個update語句的。 UPDATE table1,table2 SET table1.field1 = ta
一條sql語句update 多條記錄
key mysq ech tle date class spl imp set UPDATE categories SET display_order = CASE id WHEN 1 THEN 3 WHEN 2 THEN 4 WHEN 3 THEN 5 END
執行一條sql語句update多條記錄實現思路
如果你想更新多行資料,並且每行記錄的各欄位值都是各不一樣,你會怎麼辦呢?本文以一個示例向大家講解下如何實現如標題所示的情況,有此需求的朋友可以瞭解下 通常情況下,我們會使用以下SQL語句來更新欄位值: 複製程式碼 程式碼如下: UP
Mysql 一條SQL語句實現批量更新資料,update結合case、when和then的使用案例
如何用一條sql語句實現批量更新?mysql並沒有提供直接的方法來實現批量更新,但是可以用點小技巧來實現。 複製程式碼 程式碼如下: UPDATE mytable SET myfield = CASE id WHEN 1 THEN
一條update SQL語句是如何執行的
一條更新語句的執行過程和查詢語句類似,更新的流程涉及兩個日誌:redo log(重做日誌)和binlog(歸檔日誌)。比如我們要將ID(主鍵)=2這一行的值加(c:欄位)1,SQL語句如下: update T set c=c+1 where ID=2; redo log 重做日誌是InnoDB引擎
用一條SQL語句查出每門課都大於80分的學生的姓名
src exist spa weight utf8 exists null ont http 用一條SQL語句查出每門課都大於80分的學生的姓名,數據表結構如下: 建表SQL如下: SET FOREIGN_KEY_CHECKS=0; -- --------------
如何一條sql語句查找表中第二大值
roman splay 排名 數據庫 依然 sel col eight over 例1: 一個Customer表,一個字段Value,現請問如何查到Value中第二大的值 select max(value) from Customer
Oracle 在函數或存儲過程中執行一條插入語句並返回主鍵ID值
num c# 如果 acl get col oracle style 建表語句 有時,我們需要往一張表插入一條記錄,同時返回主鍵ID值。 假定主鍵ID的值都是通過對應表的SEQUENCE來獲得,然後進行ID賦值 這裏有幾種情況需要註意: 1)如果建表語句含有主鍵ID的觸發器
[轉]Oracle的update語句優化研究
lis 錯誤 wid class 插入 集合 top 執行 gin 原文地址:http://blog.csdn.net/u011721927/article/details/39228001 一、 update語句的語法與原理 1. 語法 單表:
cakephp獲取最後一條sql語句
ger figure manage 設置 語句 代碼 sql語句 echo data 1.在app\config\core.php中設置Configure::write(‘debug‘, 2); 2.頁面上追加如下代碼: $dbo = ConnectionManage
批量update語句優化
如果是更新為同樣的內容,沒啥難度,直接在where裡面下功夫就好了,大家都懂,我要說的是針對更新內容不一樣的情況 首先,先看看網上轉載的方法: mysql 批量更新如果一條條去更新效率是相當的慢, 迴圈一條一條的更新記錄,一條記錄update一次,這樣效能很差,也很容易造成阻塞。
laravel 獲取上一條insert語句產生的id
insert語句 insert pdo des span aca col nbsp facade <?php //頭部引入DB類 use Illuminate\Support\Facades\DB; //在方法中獲取獲取上一條insert語句產生的id $id =
用一條sql語句求出不同班級中男生和女生的數量
表: mysql> select * from gg; +------+------+-----+-------+ | id | name | sex | class | +------+------+-----+-------+ | 1 | 張三 | 男 | 1
詳解一條sql語句的執行過程
inno double other into 數據過濾 計算 var idt 底層實現 SQL是一套標準,全稱結構化查詢語言,是用來完成和數據庫之間的通信的編程語言,SQL語言是腳本語言,直接運行在數據庫上。同時,SQL語句與數據在數據庫上的存儲方式無關,只是不同的數據庫對
一條SQL語句實現查詢成績-60、60~80、+80的人數的方法
總結一下學到的一個SQL方法。下面我建立一個數據表: SELECT * FROM students; 可以看到資料表中存在六條資料,如果使用傳統的查詢方法,我們需要三條SQL語句,分別是: select count(*) from students where score<6
MySQL實戰 | 01-當執行一條 select 語句時,MySQL 到底做了啥?
原文連結:當執行一條 select 語句時,MySQL 到底做了啥? 也許,你也跟我一樣,在遇到資料庫問題時,總時茫然失措,想重啟解決問題,又怕導致資料丟失,更怕重啟失敗,影響業務。 就算重啟成功了,對於問題的原因仍不知所以。 本文開始,記錄學習《MySQL實戰45講》專欄的過程。 也許有人會問,你記
一條查詢語句是如何執行的
資料庫的內建函式,儲存過程,檢視,觸發器都在server層 聯結器:連線之後如果沒有後續操作就屬於一個空閒連線,資料庫許可權也在這裡。 如果連線之後很長時間沒有後續操作,就會斷開連線,如果這時去查詢就會丟擲異常,長連線就是一直使用這個連線,短連線就是執行了幾次查詢就會斷開連線。 所以