㈠ 達夢資料庫 如何使用sql語句查詢,資料庫容量大小和資料庫使用量大小
SELECT sum(df.TOTAL_SIZE) - sum(df.FREE_SIZE) as used ,
sum(df.TOTAL_SIZE) as total,
sum(df.FREE_SIZE) as free
FROM "SYS".V$TABLESPACE AS ts, "SYS".V$DATAFILE AS df WHERE ts.ID = df.GROUP_ID;
㈡ 如何查詢當前執行過後最消耗內存的sql語句是那句
--當前執行sql語句
SELECT a.SID ,
a.SERIAL# ,
a.USERNAME ,
b.PARSE_CALLS ,
b.PARSING_SCHEMA_NAME ,
b.CPU_TIME / 1000000 ,
b.ELAPSED_TIME / 1000000 ,
b.DISK_READS ,
b.DIRECT_WRITES ,
b.BUFFER_GETS ,
a.event ,
b.sql_text ,
b.SQL_FULLTEXT
FROM v$session a
INNER JOIN v$sqlarea b ON a.SQL_HASH_VALUE = b.hash_value
AND b.PARSING_SCHEMA_NAME = UPPER('smsdb')
--物理讀最高sql語句
SELECT a.USERNAME ,
a.USER_ID ,
b.PARSE_CALLS ,
b.PARSING_SCHEMA_NAME ,
b.CPU_TIME / 1000000 ,
b.ELAPSED_TIME / 1000000 ,
b.DISK_READS ,
b.DIRECT_WRITES ,
b.BUFFER_GETS ,
b.sql_text ,
b.SQL_FULLTEXT
FROM dba_users a
INNER JOIN v$sqlarea b ON a.USER_ID = b.PARSING_USER_ID
AND b.PARSING_SCHEMA_NAME = UPPER('smsdb')
AND disk_reads > 1000000
--查詢前10名執行最多次數SQL語句
SELECT sql_text 'SQL語句' ,
executions '執行次數'
FROM ( SELECT sql_text ,
executions ,
RANK() OVER ( ORDER BY executions DESC ) exec_rank
FROM v$sqlarea
)
WHERE exec_rank <= 10;
--查詢前10名佔用CPU最高的SQL語句
select sql_text 'SQL語句',
c_t 'SQL執行時間(秒)',executions '執行次數',cs '每次執行時間(秒)'from (select sql_text,
cpu_time /1000000 c_t,executions,ceil(executions/(cpu_time/1000000))cs,
rank() over(order by cpu_time desc) top_time
from v$sqlarea) where top_time <= 10
--查詢前10名執行時間最長SQL語句
SELECT sql_text 'SQL語句' ,
c_t '處理時間(秒)' ,
executions '執行次數' ,
cs '每次執行時間(秒)'
FROM ( SELECT sql_text ,
ELAPSED_TIME / 1000000 c_t ,
executions ,
ceil(executions / ( ELAPSED_TIME / 1000000 )) cs ,
RANK() OVER ( ORDER BY ELAPSED_TIME DESC ) top_time
FROM v$sqlarea
)
WHERE top_time <= 10
--查詢前10名最耗資源SQL語句
SELECT sql_text 'SQL語句' ,
DISK_READS '物理讀次數' ,
cs '每次執行時間(秒)'
FROM ( SELECT sql_text ,
ELAPSED_TIME / 1000000 c_t ,
executions ,
ceil(executions / ( ELAPSED_TIME / 1000000 )) cs ,
DISK_READS ,
RANK() OVER ( ORDER BY DISK_READS DESC ) top_disk
FROM v$sqlarea
)
WHERE top_disk <= 10
--查詢前10名最耗內存SQL語句
select sql_text 'SQL語句',
BUFFER_GETS '內存讀次數',cs '每次執行時間(秒)'
from (select sql_text,
ELAPSED_TIME / 1000000 c_t,executions,ceil(executions/(ELAPSED_TIME/1000000))cs,BUFFER_GETS,
rank() over(order by BUFFER_GETS desc) top_mem
from v$sqlarea) where top_mem <= 10
--查看鎖表語句
Select
c.sid,
c.serial#,
d.name,
b.object_name,
c.username,
c.program,
c.osuser
from gv$Locked_object a, All_objects b, gv$session c, audit_actions d
where a.object_id = b.object_id
and a.inst_id = c.inst_id(+)
and a.session_id = c.sid(+)
and c.command = d.action;
㈢ sql如何查詢一段時間內每個周期裡面數值最大的數據
10秒計算公式如下
select
sysdate,sysdate+
10/24/60/60
from
al;
select
*
from
table_name
where
欄位>=sysdate
and
欄位
<=
sysdate+
10/24/60/60
;
如果要進行10秒為周期查詢一次數據,數據需要寫入到臨時表,資料庫會專壓力很大
需要做個定時運
屬行
就可以了
㈣ SQL 找出指定日期范圍最大值的資料
自關聯一次,過濾不符合條件.
1. Create Table SLEEST_ANSWER And Init Data
CREATETABLE`sleest_answer`(
`date`datetimeDEFAULTNULL,
`user`varchar(10)DEFAULTNULL,
`correct`int(11)DEFAULTNULL,
`wrong`int(11)DEFAULTNULL,
`total_marker`int(11)DEFAULTNULL
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
INSERTINTO`sleest_answer`VALUES('2016-05-3012:00:00','User1',12,0,12),('2016-05-1809:00:00','User1',14,2,12),('2016-05-1721:00:00','User1',10,1,9),('2016-05-2413:15:00','User2',14,3,11),('2016-05-2713:15:00','User2',15,4,11),('2016-05-3014:00:00','User2',15,4,11),('2016-04-2916:00:00','User1',18,2,16);
2. Query Result
SELECTA.DATE,A.USER,A.CORRECT,A.WRONG,A.TOTAL_MARKER
FROMSLEEST_ANSWERALEFTJOINSLEEST_ANSWERB
ONA.USER=B.USER
AND(A.TOTAL_MARKER<B.TOTAL_MARKER
OR(A.TOTAL_MARKER=B.TOTAL_MARKERANDA.CORRECT<B.CORRECT)
OR(A.TOTAL_MARKER=B.TOTAL_MARKERANDA.CORRECT=B.CORRECTANDA.WRONG>B.WRONG)
OR(A.TOTAL_MARKER=B.TOTAL_MARKERANDA.CORRECT=B.CORRECTANDA.WRONG=B.WRONGANDA.DATE<B.DATE)
)
ANDB.DATEBETWEEN'2016-05-01'AND'2016-05-31'
WHERE1=1
ANDA.DATEBETWEEN'2016-05-01'AND'2016-05-31'
ANDB.USERISNULL
㈤ sql server 2008中三條一樣的數據中時間最大的那條
selec 欄位1,欄位2,max(時間) from 表 group by 欄位1,欄位2
----------------------
可以先GROUP BY 來查詢出最大時間,通過這個時間對應的關鍵字來聯查你的其他表!
㈥ SQL資料庫查詢最大和最小
select max(t) as 溫度最大值,min(t) as 溫度最小值,max(p) as 濕度最大值,min(p) as 濕度最小值,max(datetime) as 最後出現時間,min(datetime) as 最早出現時間 from yourtable_name
㈦ 請教 :db2資料庫 如何查找出執行時間最長的sql
執行時間最長的20條SQL語句(按時間降序排列),可保存為腳本方便調用:
SELECT rows_read / (num_executions + 1) as avg_rows_read,
rows_written / (num_executions + 1) as avg_rows_written,
stmt_sorts / (num_executions + 1) as avg_sorts,
total_exec_time / (num_executions + 1) as avg_exec_time,
substr(stmt_text,1,1000) as SQL_Stmt
FROM SYSIBMADM.SNAPDYN_SQL ORDER BY avg_exec_time desc fetch first 20 rows only;
祝你學習愉快!
㈧ 怎麼查找執行比較慢的sql語句
一、MySQL資料庫有幾個配置選項可以幫助我們及時捕獲低效SQL語句 1,slow_query_log 這個參數設置為ON,可以捕獲執行時間超過一定數值的SQL語句。 2,long_query_time 當SQL語句執行時間超過此數值時,就會被記錄到日誌中,建議設置為1或者更短。 3,slow_query_log_file 記錄日誌的文件名。 4,log_queries_not_using_indexes 這個參數設置為ON,可以捕獲到所有未使用索引的SQL語句,盡管這個SQL語句有可能執行得挺快。 二、檢測mysql中sql語句的效率的方法 1、通過查詢日誌 (1)、Windows下開啟MySQL慢查詢 MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上 代碼如下 log-slow-queries = F:/MySQL/log/mysqlslowquery。log long_query_time = 2 (2)、Linux下啟用MySQL慢查詢 MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上 代碼如下 log-slow-queries=/data/mysqldata/slowquery。log long_query_time=2 說明 log-slow-queries = F:/MySQL/log/mysqlslowquery。 為慢查詢日誌存放的位置,一般這個目錄要有MySQL的運行帳號的可寫許可權,一般都將這個目錄設置為MySQL的數據存放目錄; long_query_time=2中的2表示查詢超過兩秒才記錄;
㈨ 如何查詢資料庫中日期最大值的內容 MSSQL
select * from tablename
where 你的日期型欄位名 in
( select MAX(你的日期型欄位名) from tablename
)
這個已經可以顯示所有的記錄了喲。