當前位置:首頁 » 編程語言 » sqlwait

sqlwait

發布時間: 2022-08-04 03:16:08

1. 為什麼sql2000服務一啟動 sqlservr.exe就不停的TIME_WAIT等待遠程連接

依我看是你的系統兼容問題

你試下裝個XP系統,看還有沒有這個現象!

按理說裝了SQL之後不會有這情況出現的!

2. GSQL無法啟動wait

然後就無法啟動 這個是什麼意思? 軟體殺毒了嗎?可能是病毒或者軟體下載中出錯導致文件損壞,可以重新下個安裝

3. 如何查看my sql的wait

想必大家在用MySQL時都會遇到連接超時的問題,如下圖所示:

就是這個異常(com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was X ms ago),是由於MySQL服務在長時間不連接之後斷開了,斷開之後的首次請求會拋出這個異常。那麼既然是連接超時的問題,就要去MySQL中探究一下連接時間是怎麼控制的。打開MySQL的控制台,運行:show variables like 『%timeout%』,查看和連接時間有關的MySQL系統變數,得到如下結果:

其中wait_timeout就是負責超時控制的變數,其時間為長度為28800s,就是8個小時,那麼就是說MySQL的服務會在操作間隔8小時後斷開,需要再次重連。也有用戶在URL中使用jdbc.url=jdbc:mysql://localhost:3306/nd?autoReconnect=true來使得連接自動恢復,當然了,這是可以的,不過是MySQL4及其以下版本適用。MySQL5中已經無效了,必須調整系統變數來控制了。MySQL5手冊中對兩個變數有如下的說明:
interactive_timeout:伺服器關閉互動式連接前等待活動的秒數。互動式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。又見wait_timeout
wait_timeout:伺服器關閉非交互連接之前等待活動的秒數。在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,取決於客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義),又見interactive_timeout
如此看來,兩個變數是共同控制的,那麼都必須對他們進行修改了。繼續深入這兩個變數wait_timeout的取值范圍是1-2147483(Windows),1-31536000(linux),interactive_time取值隨wait_timeout變動,它們的默認值都是28800。
MySQL的系統變數由配置文件控制,當配置文件中不配置時,系統使用默認值,這個28800就是默認值。要修改就只能在配置文件里修改。Windows下在%MySQL HOME%/bin下有mysql.ini配置文件,打開後在如下位置添加兩個變數,賦值。(這里修改為388000)
保存退出,重啟mysql服務,一定是重啟系統服務。便可看到修改結果:

Linux系統下的配置文件為/etc/my.cnf。需要多說一點的是:windows下的配置文件具體是哪個需要從windows系統服務中找到mysql,打開屬性,看「可執行文件路徑」裡面的參數值,因為它可能是my.cnf而不是my.ini,這是由於安裝時的設置,我們可能會忽略它。

4. sql server怎樣查詢某一阻塞或x鎖持續的時間

1、

selectsession_id,--某個會話
wait_ration_ms/1000,--等待秒數
wait_type,--等待類型,可能是進程間的阻塞,也有可能是等待IO完成

blocking_session_id--被這個會話阻塞的,如果有的話

fromsys.dm_os_waiting_tasks

2、進一步的

selectwt.session_id,--某個會話
wait_ration_ms/1000as'waitseconds',--等待秒數
wait_type,--等待類型,可能是進程間的阻塞,也有可能是等待IO完成

blocking_session_id,--被這個會話阻塞的,如果有的話

tl.request_mode,--請求模式,比如S、IX、X
tl.request_type,--請求類型,比如Lock
tl.request_status--是否grant

fromsys.dm_os_waiting_taskswt
leftjoinsys.dm_tran_lockstl
onwt.session_id=tl.request_session_id

5. sql*net message from client空閑的waiting怎麼清理掉

對於一個session來說,每時每刻都在wait 的狀態。
WAIT FOR IO / WAIT FOR CPU / WAIT FOR LATCH /WAIT FOR ...
這一點你可以Query v$session_wait,總有data.

6. SQL語句中wait window的解釋

STR ( number[, length [, decimal ] ] )
參數
number 任何位於 -1E126 和 1E127 之間的近似數字(浮點、實數或雙精度)表達式。
length 要返回的字元數(包括小數點、小數點右側和左側的所有位以及空白)不寫 默認 10個字元
decimal 要返回的小數位數。預設值為 0。

7. 如何找到找出哪個SQL語句導致cpu佔用如此高

一般我們可以使用sql server自帶的性能分析追蹤工具sql profiler分析資料庫設計所產生問題的來源,進行有針對性的處理。但我們也可以通過自己寫SQL語句來有針對性的進行性能方面的查詢。通常會用到如下三個系統視圖:sys.sysprocesses ,dm_exec_sessions ,dm_exec_requests

--一、查看當前的資料庫用戶連接有多少
USE master

GO
SELECT *
FROM sys.[sysprocesses]
WHERE [spid] > 50
--AND DB_NAME([dbid])='gposdb'

SELECT COUNT(*)
FROM [sys].[dm_exec_sessions]
WHERE [session_id] > 50

--二、選取前10個最耗CPU時間的會話
SELECT TOP 10
[session_id] ,
[request_id] ,
[start_time] AS '開始時間' ,
[status] AS '狀態' ,
[command] AS '命令' ,
dest.[text] AS 'sql語句' ,
DB_NAME([database_id]) AS '資料庫名' ,
[blocking_session_id] AS '正在阻塞其他會話的會話ID' ,
[wait_type] AS '等待資源類型' ,
[wait_time] AS '等待時間' ,
[wait_resource] AS '等待的資源' ,
[reads] AS '物理讀次數' ,
[writes] AS '寫次數' ,
[logical_reads] AS '邏輯讀次數' ,
[row_count] AS '返回結果行數'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id] > 50
AND DB_NAME(der.[database_id]) = 'gposdb'
ORDER BY [cpu_time] DESC

--三、查詢前10個最耗CPU時間的SQL語句
SELECT TOP 10
dest.[text] AS 'sql語句'
FROM sys.[dm_exec_requests] AS der
CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id] > 50
ORDER BY [cpu_time] DESC

--四、查詢會話中有多少個worker在等待
SELECT TOP 10
[session_id] ,
[request_id] ,
[start_time] AS '開始時間' ,
[status] AS '狀態' ,
[command] AS '命令' ,
dest.[text] AS 'sql語句' ,
DB_NAME([database_id]) AS '資料庫名' ,
[blocking_session_id] AS '正在阻塞其他會話的會話ID' ,
der.[wait_type] AS '等待資源類型' ,
[wait_time] AS '等待時間' ,
[wait_resource] AS '等待的資源' ,
[dows].[waiting_tasks_count] AS '當前正在進行等待的任務數' ,
[reads] AS '物理讀次數' ,
[writes] AS '寫次數' ,
[logical_reads] AS '邏輯讀次數' ,
[row_count] AS '返回結果行數'
FROM sys.[dm_exec_requests] AS der
INNER JOIN [sys].[dm_os_wait_stats] AS dows ON der.[wait_type] = [dows].[wait_type]
CROSS APPLY sys.[dm_exec_sql_text](der.[sql_handle]) AS dest
WHERE [session_id] > 50
ORDER BY [cpu_time] DESC

--五、查詢CPU佔用高的語句
SELECT TOP 10
total_worker_time / execution_count AS avg_cpu_cost ,
plan_handle ,
execution_count ,
( SELECT SUBSTRING(text, statement_start_offset / 2 + 1,
( CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), text))
* 2
ELSE statement_end_offset
END - statement_start_offset ) / 2)
FROM sys.dm_exec_sql_text(sql_handle)
) AS query_text
FROM sys.dm_exec_query_stats
ORDER BY [avg_cpu_cost] DESC

8. 如何在DELPHI中將EXCEL中的數據導入到SQL資料庫

var
s1:string;
begin
screen.Cursor:=crSQLWait;
s1:='insert into table_bus '+
' (BS_NO,BS_TYPE,bs_whos,bs_mode,bs_seat,bs_soalseat,bs_drseat,bs_oiltype,bs_buycard,bs_unit,BS_BDATE,bs_edate) '+
' SELECT 車號,dbo.uf_GetFullNameCode(車型名稱),dbo.uf_GetFullNameCode(所屬單位),dbo.uf_GetFullNameCode(廠牌型號),核定座位,售票座位,駕駛室前排座位,dbo.uf_GetFullNameCode(燃料名稱),購置證號,本外單位,啟用日期,dbo.uf_ConvertNullDate(終止時間) '+
' FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+trim(LabeledEdit1.text)+'";Extended Properties=Excel 8.0;Persist Security Info=False'')...[Sheet1$] '+
' where 車號 not in(select bs_no from table_bus) ';
try
DataMole1.ADOConnection1.Execute(s1);
finally
screen.Cursor:=crArrow;
end;
end;
EXCEL是可以當成一種數據源來處理的。 Str := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + 文件路徑 +
';Extended Properties=Excel 8.0;Persist Security Info=False';
然後每列相當於一欄位?

熟悉SQL SERVER 2000的資料庫管理員都知道,其DTS可以進行數據的導入導出,其實,我們也可以使用Transact-SQL語句進行導入導出操作。在Transact-SQL語句中,我們主要使用OpenDataSource函數、OPENROWSET 函數,關於函數的詳細說明,請參考SQL聯機幫助。利用下述方法,可以十分容易地實現SQL SERVER、ACCESS、EXCEL數據轉換,詳細說明如下:
一、SQL SERVER 和ACCESS的數據導入導出
常規的數據導入導出:
使用DTS向導遷移你的Access數據到SQL Server,你可以使用這些步驟:
○1在SQL SERVER企業管理器中的Tools(工具)菜單上,選擇Data Transformation
○2Services(數據轉換服務),然後選擇 czdImport Data(導入數據)。
○3在Choose a Data Source(選擇數據源)對話框中選擇Microsoft Access as the Source,然後鍵入你的.mdb資料庫(.mdb文件擴展名)的文件名或通過瀏覽尋找該文件。
○4在Choose a Destination(選擇目標)對話框中,選擇Microsoft OLE DB Prov ider for SQL Server,選擇資料庫伺服器,然後單擊必要的驗證方式。
○5在Specify Table Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy tables(復製表格)。
○6在Select Source Tables(選擇源表格)對話框中,單擊Select All(全部選定)。下一步,完成。
Transact-SQL語句進行導入導出:
1.在SQL SERVER里查詢access數據:
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名
2.將access導入SQL server
在SQL SERVER 里運行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名
3.將SQL SERVER表裡的數據插入到Access表中
在SQL SERVER 里運行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名
(列名1,列名2)
select 列名1,列名2 from sql表
實例:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\db.mdb';'admin';'', Test)
select id,name from Test

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename
二、SQL SERVER 和EXCEL的數據導入導出
1、在SQL SERVER里查詢Excel數據:
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是個查詢的示例,它通過用於 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。
SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
2、將Excel的數據導入SQL server :
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
實例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
3、將SQL SERVER中查詢到的數據導成一個Excel文件
T-SQL代碼:
EXEC master..xp_cmdshell 'bcp 庫名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
參數:S 是SQL伺服器名;U是用戶;P是密碼
說明:還可以導出文本文件等多種格式
實例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中應用ADO導出EXCEL文件代碼:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 庫名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"

4、在SQL SERVER里往Excel插入數據:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)
T-SQL代碼:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]
(bestand, prokt) VALUES (20, 'Test')
總結:利用以上語句,我們可以方便地將SQL SERVER、ACCESS和EXCEL電子表格軟體中的數據進行轉換,為我們提供了極大方便!

方法2:
procere TForm1.Button3Click(Sender: TObject);
var
oe:variant;
n1,str:string;
j:integer;
begin
if opendialog1.Execute then
opendialog1.DefaultExt:='xls';
str:=opendialog

9. Oracle的sql語句中wait的含義

nowait:立即執行,如果另有會話正在修改該記錄會立即報告錯誤:ORA-00054: 資源正忙,要求指定 NOWAIT;如果不選擇nowait選項則會一直處理等待狀態。
wait [n]:等待n秒,如果另有會話正在修改該記錄會報告錯誤:ORA-30006: 資源已被佔用; 執行操作時出現 WAIT 超時
=>另外,還有一個skip locked。
skip locked:跳過已被別的會話鎖定的記錄

熱點內容
特斯拉在哪裡輸入密碼 發布:2025-01-23 04:05:29 瀏覽:205
影視腳本創作 發布:2025-01-23 04:00:39 瀏覽:844
cmd腳本執行sql腳本 發布:2025-01-23 03:46:51 瀏覽:115
搭建100人的游戲伺服器 發布:2025-01-23 03:37:43 瀏覽:517
b站台解析伺服器ip 發布:2025-01-23 03:36:12 瀏覽:203
安卓手機在哪裡看港劇 發布:2025-01-23 03:35:30 瀏覽:52
黑漫的伺服器ip 發布:2025-01-23 03:16:40 瀏覽:651
tplink無internet訪問 發布:2025-01-23 03:15:18 瀏覽:567
原神用安卓手機玩為什麼畫質那麼低 發布:2025-01-23 03:09:31 瀏覽:848
空調壓縮機是外機嗎 發布:2025-01-23 03:09:31 瀏覽:951