db2查看正在執行的sql
執行下select @@version 如果是sqlserver
oracle 執行下:select * from v$version
mysql select version()
⑵ 如何根據進程PID捕捉該進程正在執行的sql語句
sql server profiler 提供了這種功能。
是SQL自帶的一個工具。你登錄進去後,點運行,即可獲取所有SQL語句,及哪個進程發起的。
⑶ db2自動備份求助,報錯sql1035n,資料庫正在使用
db2自動備份求助,報錯sql1035n,資料庫正在使用
首先打開SQL Server企業管理器,點擊菜單 工具,選擇 SQL查詢分析器。在查詢分析器中輸入SQL腳本,「backup log [要操作的資料庫] with no_log」,然後執行該語句。
程序提示命令已成功完成後,退出該應用程序
回到SQL Server企業管理器,右鍵單擊資料庫,在彈出菜單中選擇所有任務,收縮資料庫。
⑷ sql 語句大全
1、說明:創建資料庫
CREATE DATABASE database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_admpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表
drop table tabname
6、說明:增加一個列
Alter table tabname add column col type
註:列增加後將不能刪除。DB2中列加上後數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:添加主鍵: Alter table tabname add primary key(col)
說明:刪除主鍵: Alter table tabname drop primary key(col)
8、說明:創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
註:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重復行而派生出一個結果表。當 ALL隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
註:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left (outer) join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right (outer) join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full/cross (outer) join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
12、分組:Group by:
一張表,一旦分組 完成後,查詢後只能得到組相關的信息。
組相關的信息:(統計信息) count,sum,max,min,avg 分組的標准)
在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據
在selecte統計函數中的欄位,不能和普通的欄位放在一起;
13、對資料庫進行操作:
分離資料庫: sp_detach_db;附加資料庫:sp_attach_db 後接表明,附加需要完整的路徑名
14.如何修改資料庫的名稱:
sp_renamedb 'old_name', 'new_name'
⑸ 如何查詢db2資料庫表是否被鎖
1、首先點擊桌面上的SQL server資料庫。
⑹ 怎麼看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來收集統計信息:
⑺ 如何用db2輸入SQL命令
可以在命令編輯器或者Windows 的DB2 命令窗口或者 linux 的shell 中執行SQL 腳本。在windows 的DB2 命令窗口或者 linux 的shell 中執行SQL語句,可以使用下面的命令執行script1.sql腳本:
db2 -t -v -f script1.sql -z script1.log
或者:
db2 –tvf script1.sql –z script1.log
在上面的命令中,
-t 表示語句使用默認的語句終結符——分號;
-v 表示使用冗長模式,這樣 DB2 會顯示每一條正在執行命令的信息;
-f 表示其後就是腳本文件;
-z 表示其後的信息記錄文件用於記錄屏幕的輸出,方便以後的分析(這是可選的,但建議使用該選項)。
當使用了-t選項而沒有標明語句終結符,則分號(;)會默認為語句的終結符。有時可能會出現使用另外的終結符的情況,例如用SQL PL 編寫的的腳本使用其它的符號而不是默認的分號,因為分號在SQL PL 是用於定義資料庫對象過程中的語句結束。
⑻ 如何處理DB2執行RUNSTATS操作時遇到SQL2314W警告信息的問題
產品:跨平台
版本:V8,V9問題當一個表正在被更新的時候,可以對其執行RUNSTATS,進行表和索引數據統計信息的收集,但根據更新操作的級別不同,得到的統計信息可能是不一致的。您可能會遇到如下的錯誤信息:
SQL2314W 某些統計信息處於不一致的狀態。最近收集的 ""統計信息與現有的 "" 統計信息不一致。
解答不一致的統計信息可能會導致不理想的查詢計劃,SQL2314W就是產生這種可能性的警告信息。您應該嘗試在應用對該表的訪問級別盡可能低(或者如果可能的話沒有任何操作)的情況下來執行RUNSTATS命令,如嘗試盡量避免在有更新操作的情況下進行RUNSTATS操作。
另外,RUNSTATS命令預設使用的是「ALLOW WRITE ACCESS」選項,您也可以使用選項「ALLOW READ ACCESS」來執RUNSTATS,這樣,在RUNSTATS執行的時候,其他操作將不能更改該表。但這個選項會對應用的並行性有影響,因為任何想要更改表的操作都會處於等待狀態。為了減少表被ALLOW READ ACCESS選項的RUNSTATS鎖定的時間,您可以考慮使用TABLESAMPLE選項,這個選項導致RUNSTATS對於表的部份采樣數據而不是所有數據收集統計信息。對於采樣數據大小的合理選擇,可以在確保統計信息一致性的情況下,加快RUNSTATS的速度。
如果以上的建議都無法阻止SQL2314W警告信息的出現,而檢查訪問該表的應用的存取計劃時發現確實存在優化器未能自動選擇最優的存取計劃的情況,應考慮在盡量保證RUNSTATS可獲得較高存取許可權的時候重新執行RUNSTATS,以便優化器重新產生最優的存取計劃。不過對於因遇到SQL2314W產生的非最優的存取計劃,如本應選擇索引掃描,但優化器選擇了表掃描的情況,也可以考慮認為地用ALTER TABLE語句將該表標記成「volatile」,以鼓勵優化器選擇索引掃描,而不考慮表掃描。