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

12萬行sql執行時間

發布時間: 2023-03-13 14:32:23

『壹』 多條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語句執行時間

declare @sttime datetime
set @sttime=getdate()
print @sttime
Select * from case1219 -- 把你的sql語句放在這里
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'

或者這么寫

DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;
SET @t1 = GETDATE();
Select * from dimDate ;-- 把你要查詢的sql語句放在這里
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

『叄』 sql執行時間一般不超過多久

你好,一般是10-20毫秒。

擴展:

常見查詢慢的原因常見的話會有如下幾種:

1、沒有索引或沒有用到索引。

PS:索引用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式保存。如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表



的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜索條件的列上已經創建了索引,MySQL無需掃描任何記錄

即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查找記錄至少要比順序掃描記錄快100倍。

索引類型:

普通索引:這是最基本的索引類型,沒唯一性之類的限制。

唯一性索引:和普通索引基本相同,但所有的索引列只能出現一次,保持唯一性。

主鍵:主鍵是一種唯一索引,但必須指定為"PRIMARY KEY"。

全文索引:MYSQL從3.23.23開始支持全文索引和全文檢索。在MYSQL中,全文索引的索引類型為FULLTEXT。全文索引可以在VARCHAR或者TEXT類型的列上創建。

2、IO吞吐量小形成了瓶頸。

PS:這是從系統層來分析MYSQL是比較耗IO的。一般資料庫監控也是比較關注IO。

監控命令:$iostat -d -k 1 10

參數 -d 表示,顯示設備(磁碟)使用狀態;-k某些使用block為單位的列強制使用Kilobytes為單位;1 10表示,數據顯示每隔1秒刷新一次,共顯示10次。

『肆』 MSSQL如何查看sql語句執行時間判斷執行效率

寫程序的人,往往需要分析所寫的SQL語句是否已經優化過了,伺服器的響應時間有多快,這個時候就需要用到SQL的STATISTICS狀態值來查看了。

通過設置STATISTICS我們可以查看執行SQL時的系統情況。選項有PROFILE,IO ,TIME。介紹如下:

SET STATISTICS PROFILE ON:顯示分析、編譯和執行查詢所需的時間(以毫秒為單位)。
SET STATISTICS IO ON:報告與語句內引用的每個表的掃描數、邏輯讀取數(在高速緩存訪問的頁數)和物理讀取數(訪問磁碟的次數)有關的信息。
SET STATISTICS TIME ON:顯示每個查詢執行後的結果集,代表查詢執行的配置文件。

使用方法:打開SQL SERVER 查詢分析器,輸入以下語句:

SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO /*--你的SQL腳本開始*/
SELECT [TestCase] FROM [TestCaseSelect]
GO /*--你的SQL腳本結束*/
SET STATISTICS PROFILE OFF
SET STATISTICS IO OFF
SET STATISTICS TIME OFF

效果如圖所示:

另外,也可以通過手工添加語句,計算執行時間來查看執行語句花費了的時間,以判斷該條SQL語句的效率如何:

declare @d datetime
set @d=getdate()
/*你的SQL腳本開始*/
SELECT [TestCase] FROM [TestCaseSelect]
/*你的SQL腳本結束*/
select [語句執行花費時間(毫秒)]=datediff(ms,@d,getdate())

『伍』 怎麼查看sql語句執行所需的時間

在查詢分析器中,選中 包含客戶端統計信息 ,執行結果就會多一個選項卡。

如果是在應用程序中,在執行語句的前後各加一個時間,兩個時間對比就行了。
也可以在跟蹤里,查看語句的執行時間。

『陸』 如何查看sql語句執行時間

declare
@sttime
datetime
set
@sttime=getdate()
print
@sttime
Select
*
from
case1219
--
把你的sql語句放在這里
SELECT
RTRIM(CAST(DATEDIFF(MS,
@sttime,
GETDATE())
AS
CHAR(10)))
AS
'TimeTaken'
或者這么寫
DECLARE
@t1
DATETIME;
DECLARE
@t2
DATETIME;
SET
@t1
=
GETDATE();
Select
*
from
dimDate
;--
把你要查詢的sql語句放在這里
SET
@t2
=
GETDATE();
SELECT
DATEDIFF(millisecond,@t1,@t2)
AS
elapsed_ms;

『柒』 如何計算sql語句執行時間的時間

sql中一般用datediff函數來表示時間差。
基本語法:
DATEDIFF(datepart,startdate,enddate)

說明:
startdate 和 enddate 參數是合法的日期表達式。
datepart 參數可以是下列的值:

例子:
例子 1
使用如下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate

結果:

DiffDate

1
例子2
使用如下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate

結果:

DiffDate

-1

『捌』 sql語句執行效率低,有上千萬條數據,耗時3分鍾

not in內外表都進行全表掃描,沒有用到索引,所以很慢not extsts 的子查詢能用到表上的索引。 改成:
select convert(varchar(10),scanTime,20) as 'DList' from T_SCAN
where not extsts
(
select 1 from T_Scan_image ts,T_SCAN t
where ts.scanTime = t.scanTime
)
group by convert (varchar(10),scanTime,20)