當前位置:首頁 » 編程語言 » db2定時執行sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

db2定時執行sql

發布時間: 2022-08-02 05:20:10

『壹』 怎麼看db2資料庫sql執行計劃圖

DB2資料庫和ORACLE資料庫一樣,DB2資料庫裡面也是通過優化器來分析你的SQL,生成它認為最優的執行計劃(Access Plan)。DB2的優化器實際上是一個標准規則集合,一般來說我們只要告訴DB2要檢索什麼,而不是如何檢索。

那麼DB2的優化器是根據什麼來判斷SQL的最優存取路徑呢?

DB2的優化器是基於成本的優化器,也就是CBO(Cost Based Optmizer)。也就是說DB2優化器會應用查詢成本公式,該公式對每條可能的存取路徑的四個因素進行評估和權衡:CPU成本、I/O成本、DB2系統目錄中的統計信息和實際的SQL語句。

那麼我們來簡單看一下DB2的優化器的工作流程:

1.DB2的優化器,在接收到SQL語句後,會首先校驗SQL的語法,確保是正確的SQL

2.根據當前的系統環境信息,生成最優的執行計劃來優化SQL語句

3.把SQL翻譯成計算機指令語言,並執行這個優化後的SQL

4.返回結果,或者存儲它們,以便將來的執行

在我們看來,DB2系統目錄中統計信息是讓DB2優化器正確工作的一個非常重要的依據。這些統計信息向優化器提供了與正在被優化的SQL語句將要訪問的表狀態相關的信息。這些信息主要包括:

Table--包括表的記錄數、PAGE、PCTFREE以及COMPRESS等信息,相關的系統視圖是:sysstat.tables、syscat.tables

Columns—包括COLUMNS的數量、長度、分布特徵以及COMPRESS等信息,相關的系統視圖是:sysstat.columns、syscat. columns

Index--包括是否存在索引、索引的組織(葉子頁的數量和級別的數量)、索引鍵的離散值的數量以及是否群集索引,相關的系統視圖是:sysstat.indexes、syscat. indexes

其他的還有分區/節點組信息和表空間的信息

如何及時更新這些信息呢?保證DB2優化器正確的工作,在DB2裡面提供了以下的辦法。

RUNSTATS與REOGCHK

Runstats這個命令的功能主要就是收集資料庫對象的狀態信息,這對資料庫使用合理的ACCESS PLAN是至關重要的。一般來說,以下幾種情況下面,我們需要用runstats來收集統計信息:

『貳』 如何定時的去執行SQL語句

1.把要執行的SQL語句准備好,例如:
use ttNew //使用ttNew資料庫
Go
insert into Users(name) values(" ") //往表Users插入一條記錄
將該語句保存在文件user.sql里,放在d盤跟目錄下。
2.寫一個批處理文件,例如:
再新建一個記事本,里邊寫上語句osql -E -i d:\user.sql,保存為11.bat
3.利用系統任務計劃調用批處理文件,執行SQL語句

在系統程序->附件->系統工具->任務計劃
添加新任務計劃,點下一步,再點瀏覽,找到11.bat文件,後,選擇執行時間,點下一步。一直點,最後輸入本機的密碼,點完成。

『叄』 怎樣使用命令行執行DB2的SQL

一、准備工作
運行db2cmd或者db2cw打開DB2命令行處理器

進入SQL腳本存放目錄

用db2 connect to <dbname> user <username> using <password> 命令連接資料庫

用db2 set current schema <schema_name> 設置當前的SCHEMA,這個SCHEMA可以是未創建的,DB2會自動創建。
二、執行不同類型的SQL

1、在命令行執行簡單SQL命令

db2 <SQL語句內容>

2、在命令行執行SQL腳本文件

db2 -td; -cf <SQL腳本文件路徑> -l <輸出日誌文件路徑>

說明:-td; 指定語句結束標志。因為一般SQL都是以分號結尾,所以就寫成「-td;」。

-l <輸出日誌文件路徑> 是可選的。

3、在命令行執行DB2 存儲過程文件
db2 -td@ -f <SQL過程文件路徑> -l <輸出日誌文件路徑>

說明:-td@ 指定語句結束標志。因為一般SQL過程都是以@結尾,所以就寫成「-td@」。

-l <輸出日誌文件路徑> 是可選的。

『肆』 求助db2如何執行動態SQL 並返回值

求助db2如何執行動態SQL 並返回值
大多數情況下,DB2資料庫管理程序在需要鎖時會隱式地獲取它們,事務不需要顯式地請求鎖,唯一有可能被事務顯式鎖定的資料庫對象就是表,可以使用下邊的語句。\r\nALTER TABLE [TableName] LOCKSIZE TABLE\r\n或\r\nLOCK TABLE [TableName] IN [SHARE|EXCLUSIVE] MODE

『伍』 DB2資料庫延時10秒執行一行sql語句,如何實現求具體代碼

sql 不適合這個 但也可以做就是不斷取本地時間和上一個時間比較相差10秒就開始,編程語言都有c的特點可以取到機器的時序脈沖所有可以計算秒。

『陸』 DB2如何實現定時執行SQL/存儲過程,使結果集插入另一張已存在的數據表

db2的定時執行可以用系統的定時任務功能
比如 windows的 計劃任務 linux的crontab

『柒』 求每天自動運行的存儲過程,在DB2上執行

自動運行的只能是作業,你可以在作業裡面調用存儲過程。

『捌』 怎麼樣才能讓sql資料庫定期執行一句sql語句

create or replace procere MYPROCEDURE is
begin
UPDATE mac_vod SET vod_play_url= replace(vod_play_url, '第', '弟');
commit;
end MYPROCEDURE;

declare myjob number;
begin
DBMS_JOB.SUBMIT(
job => myjob,
what => 'myprocere;',
next_date => SYSDATE,
interval => 'sysdate+5/(24*60)');
commit;
end;

『玖』 DB2 命令行中如何執行sql腳本

無論是windows系統,還是linux或AIX
你可以在實例用戶下,先鍵入 db2 這個命令,進入到db2命令行,然再執行creat database mydb

或者

你可以在系統命令行下直接執行
db2 create database mydb

db2 "create database mydb"

『拾』 如何在db2命令行運行sql必知必會例子

db2 => connect to dbName user xxx using password

db2 => sql語句

如果要執行一個sql腳本文件:

db2 => quit

c:\> db2 -tvf sql文件名
db2 -td@ -f filename
@是語句結束符。
E:\>db2 ? options
db2 [option ...] [db2-command | sql-statement |
[? [phrase | message | sqlstate | class-code]]]
option:-a、-c、-e{c|s}、-finfile、-lhistfile、-n、-o、-p、-rreport、-s、-t、
-td;、-v、-w、-x 和 -zoutputfile。

選項 描述 預設設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動落實 ON
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-l 將命令記錄到歷史文件中 OFF
-n 除去換行字元 OFF
-o 顯示輸出 ON
-p 顯示 db2 互動式提示符 ON
-r 將輸出報告保存到文件 OFF
-s 在命令出錯時停止執行 OFF
-t 設置語句終止字元 OFF
-v 回送當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不列印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF

注意:
使用 DB2OPTIONS 環境變數定製選項預設值。
緊跟選項字母後的減號(-)使該選項關閉。
使用 UPDATE COMMAND OPTIONS 更改選項設置(以互動式或
文件輸入方式)。

只能提供nt環境下編寫腳本的例子給你以供參考:
腳本樣例:
db2 connect to yourdb user yourname using yourpassword
db2 insert into newuser(username,password,email) values('Amy','1234','[email protected]')
db2 insert into newuser(username,password,email) values('Judy','1234','[email protected]')
db2 commit
db2 disconnect yourdb

運行腳本: 運行db2cmd X:\XXX.bat

以下摘自本論壇的FAQ可參考:
"
在命令窗口中運行DB2腳本,可用 db2 -svtf 腳本文件名 來實現。
例如,腳本文件名為sample.sql,運行:db2 -svtf sample.sql

參數中:
s 代表遇到錯誤時中止運行腳本
v 代表輸出結果到屏幕
t 指以;號作為每行的分隔符
f 指後面需跟腳本文件名 "---此摘錄版權歸斑竹非本人所有

具體在AS400如何編寫腳本非常遺憾.

db2 -x select SERIALNO from tabname where clause

C:>db2 attach to db2164 user ccp
輸入 ccp 的當前密碼:

實例連接信息

實例伺服器 = DB2/NT 8.2.0
授權標識 = CCP
本地實例別名 = DB2164

C:>db2 connect to dw164 user ccp
輸入 ccp 的當前密碼:

資料庫連接信息

資料庫伺服器 = DB2/NT 8.2.0
SQL 授權標識 = CCP
本地資料庫別名 = DW164

C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur

CUST_ID NOW_PRED_S LOAD_TIME
-------------------- -------------------- --------------------------
3094736. ZFS 2008-05-07-10.02.00.453000
3145886. ZFS 2008-05-07-10.02.00.453000

2 條記錄已選擇。

C:>db2 list command options

命令行處理器選項設置

後端進程等待時間(秒) (DB2BQTIME) = 1
連接至後端的重試次數 (DB2BQTRY) = 60
請求隊列等待時間(秒) (DB2RQTIME) = 5
輸入隊列等待時間(秒) (DB2IQTIME) = 5
命令選項 (DB2OPTIONS) = +m

選項 描述 當前設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自動落實 ON
-d 檢索並顯示 XML 聲明 OFF
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀取輸入文件 OFF
-i 顯示 XML 數據並帶有縮進 OFF
-l 將命令記錄到歷史記錄文件中 OFF
-m 顯示受影響的行數 OFF
-n 除去換行字元 OFF
-o 顯示輸出 ON
-p 顯示互動式輸入提示符 ON
-q 保留空格和換行符 OFF
-r 將輸出保存到報告文件 OFF
-s 在命令出錯時停止執行 OFF
-t 設置語句終止字元 OFF
-v 回傳當前命令 OFF
-w 顯示 FETCH/SELECT 警告消息 ON
-x 不列印列標題 OFF
-z 將所有輸出保存到輸出文件 OFF

C:>db2set DB2OPTIONS=-x
C:>db2 select * from CCP_STS1 fetch first 2 rows only with ur
4654908. ZFS 2008-05-07-10.02.00.453000
3716687. ZFS 2008-05-07-10.02.00.453000