1. 程式人生 > 實用技巧 >Vue3 的新特性(一):ref()、reactive()、toRef() 和 toRefs()

Vue3 的新特性(一):ref()、reactive()、toRef() 和 toRefs()

目錄

1 引言

Oracle資料庫對於大資料量的更新和插入如果一次一行SQL的寫的話,顯得有點low同時也是效率問題容易讓人抓狂,因此在這裡記敘下針對Oracle的批量更新和插入
建表:

-- 學生表
create table student (id varchar2(20),name varchar2(20),class varchar2(20));

-- 其他表
create table other (id varchar2(20),name varchar2(20));

1.1 批量更新

1.1.1 一般方式

update student s 
set s.name = 
(select o.name from other o where s.id = o.id )
where exists (select 1 from other o where s.id = o.id ) ;

引申問題:
針對上述的sql中的where條件可有可無,如果沒了是全表更新,但是更新結果是需要匹配的上才更新,不然不更新,這樣不容易看出實際更新了多少行;如果有where條件,就先去查證符合條件的再去更新,這樣可以看出來更新了多少行

1.1.2 使用遊標

由於一般的update更新耗時久,5W條資料能耗時12分鐘,因此遊標方式可以作為考慮

declare
 cursor my_cur is   --宣告遊標my_cur
 	select s.id,o.name from student s,other o where s.id = o.id ;
 count NUMBER;--宣告一個number型別的變數
BEGIN count:=0;--初始化變數值為0
  FOR cur IN my_cur LOOP--遍歷遊標
   UPDATE student s SET s.name=cur.name WHERE s.id=cur.id;
       count:=count+1;--每次迴圈變數值+1
    IF(count>=1000) THEN
       COMMIT;
       count:=0;--每更新1000行,count值為1000時候,就提交給資料庫提交後將變數歸零,繼續下一個1000行更新
    END IF;
  END LOOP;
   COMMIT;
END;
/

1.2 批量插入

一般批量插入方式與一般的插入語句是少了values關鍵字就可以使用批量插入了

insert into student 
       select o.*,'1' from other o

如果插入過多的話,可以使用遊標的方式插入,來提高效率