1. 程式人生 > 其它 >記一次效能優化,單臺4核8G機器支撐5萬QPS

記一次效能優化,單臺4核8G機器支撐5萬QPS

在sqlplus中serveroutput是預設關閉的,使用下面的方法可以開啟

set serveroutput on

顯示隨機數

begin
dbms_output.put_line(dbms_random.value(1,100));
end;
declare
rnd number;
begin
rnd:=floor(dbms_random.value(1,100));
dbms_output.put_line(rnd);
end;

在一行上輸出SCOTT的薪水及所在部門名稱

declare
v_sal  number(7,2);
v_dname  varchar2(14);
begin
select sal,dname into v_sal,v_dname from emp join dept using(deptno) where ename='SCOTT'; dbms_output.put_line('sal:'||v_sal||' dname:'||v_dname); end;

子程式
本質就是具名塊
一次編譯,多次執行

將邏輯上相關聯的PL/S인L型別、變數常量、子程式、遊標和異常等封裝在一起
可以將個包看作是一個小型的應用程式
觸發器
在一個事件之前或之後觸發
通常是用於完成資料同步維護、關聯事務處理、預方誤操作等情況

輸入輸出
ー大多數PL/SQL的輸入輸出是通過SQL語句完成的,比如通過SQL存取資料
其他的PL/SQL輸入輸出是通過 Oracle自身提供的相關包來實現
DBMS OUTPUT
HTF 用在網頁編寫當中去使用的
HTP 用在網頁編寫當中去使用的
DBMS_PIPE 可以將在一個例項上執行的不同的會話之間的通訊
UTL_FILE 檔案的讀寫操作
UTL_HTTP
UTL_SMTP 發郵件的

資料抽象
遊標
複合資料
集合
記錄
抽象資料型別
%TYPE
DEMO 2.1
%ROWTYPE
DEMO3取出最高薪水和最低薪水差距最大的薪水級別的資訊

declare
v_sal  emp.sal%type;
v_dname  dept.dname%type;
begin
select sal,dname into v_sal,v_dname from emp join dept using(deptno) where ename='SCOTT';
dbms_output.put_line('sal:'||v_sal||' dname:'||v_dname);
end;
declare
cursor sg 
is select * from (select * from salgrade order by hisal-losal desc) where rownum<=1; v_sg sg%rowtype; begin open sg; fetch sg into v_sg; dbms_output.put_line('grade:'||v_sg.grade||' losal:'||v_sg.losal||' hisal:'||v_sg.hisal); close sg; end;