使用語(yǔ)句查詢SQL Server執(zhí)行過(guò)的語(yǔ)句及執(zhí)行效率
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出曲沃免費(fèi)做網(wǎng)站回饋大家。
SELECT?TOP?1000
ST.text?AS?'執(zhí)行的SQL語(yǔ)句',
QS.execution_count?AS?'執(zhí)行次數(shù)',
QS.total_elapsed_time?AS?'耗時(shí)',
QS.total_logical_reads?AS?'邏輯讀取次數(shù)',
QS.total_logical_writes?AS?'邏輯寫入次數(shù)',
QS.total_physical_reads?AS?'物理讀取次數(shù)',
QS.creation_time?AS?'執(zhí)行時(shí)間'?,
QS.*
FROM???sys.dm_exec_query_stats?QS
CROSS?APPLY?
sys.dm_exec_sql_text(QS.sql_handle)?ST
--WHERE??QS.creation_time?BETWEEN?'2015-08-01?00:00:00'?AND?'2015-09-02?11:00:00'?
ORDER?BY
QS.creation_time?DESC
C#和MS SQL交互使用的技術(shù)叫做 ADO.NET。 使用ADO.NET可以方便的對(duì)SQL SERVER 進(jìn)行操作。
(如果你對(duì)ADO.NET不了解,建議先MSDN一下)
批量插入數(shù)據(jù),有兩種方式,
1,數(shù)據(jù)比較復(fù)雜但是量不是很大,(這個(gè)大小的概念要視你的硬件、網(wǎng)絡(luò)而定,一般在100萬(wàn)條以上才叫大)。
使用FOR循環(huán)進(jìn)行插入, 即聲明連接(conn.Open)然后進(jìn)行遍歷,
一條一條插入數(shù)據(jù)庫(kù)(執(zhí)行Insert語(yǔ)句),
一般來(lái)說(shuō),100W條數(shù)據(jù),如果插入本機(jī)數(shù)據(jù)庫(kù)的話, 耗時(shí)一般在40S-1分鐘左右,
也可以在SqlServer中創(chuàng)建一個(gè)存儲(chǔ)過(guò)程來(lái)執(zhí)行Insert命令, 遍歷時(shí)只需要調(diào)用存儲(chǔ)過(guò)程即可, ?存儲(chǔ)過(guò)程的執(zhí)行效率比Sql語(yǔ)句要高很多,因?yàn)椴恍枰看味季幾g。
100W條數(shù)據(jù)用存儲(chǔ)過(guò)程來(lái)執(zhí)行的話,一般耗時(shí)在20S左右,。
2數(shù)據(jù)量巨大,但是類型較簡(jiǎn)單,(一般指上百萬(wàn)條數(shù)據(jù))
使用ADO.NET提供的BulkCopy,即批量導(dǎo)入,
語(yǔ)法:
public?static?void?BulkToDB(DataTable?dt,?string?TableName)
{
SqlConnection?sqlConn?=?new?SqlConnection(
ConfigurationManager.ConnectionStrings["dbconnstr"].ConnectionString);
SqlBulkCopy?bulkCopy?=?new?SqlBulkCopy(sqlConn);
bulkCopy.BulkCopyTimeout?=?600;
bulkCopy.DestinationTableName?=?TableName;
bulkCopy.BatchSize?=?dt.Rows.Count;
try
{
sqlConn.Open();
if?(dt?!=?null??dt.Rows.Count?!=?0)
bulkCopy.WriteToServer(dt);
}
catch?(Exception?ex)
{
throw?ex;
}
finally
{
sqlConn.Close();
if?(bulkCopy?!=?null)
bulkCopy.Close();
}
}
需要傳入一個(gè)DataTable,一個(gè)表名。?
這種方式速度非常快,同樣100W條數(shù)據(jù),本機(jī)導(dǎo)入,大概3-5秒就可以完成,
但是需要注意,傳入的DataTable必須和Sql Server中的表結(jié)構(gòu)一模一樣,
比如你的表有3列,分別是Name, Age, Sex。 ?你傳入的DataTable也必須是如此,所以這種方式只適合導(dǎo)入一些基礎(chǔ)數(shù)據(jù), 并不適合作為數(shù)據(jù)層的常用方法。
如果數(shù)據(jù)量巨大又要求很高的效率,更建議使用NoSql數(shù)據(jù)庫(kù)
從網(wǎng)盤上獲取SQLServer的JDBC驅(qū)動(dòng)程序6.0版本,百度網(wǎng)盤下載地址:。 運(yùn)行sqlserver_jdbc.exe程序,彈出一個(gè)解壓窗體,點(diǎn)擊【Unzip】按鈕,可以將安裝程序解壓到當(dāng)前目錄下。
文章名稱:sqlserver耗時(shí),sqlserver時(shí)間加1小時(shí)
分享網(wǎng)址:http://sd-ha.com/article18/hcoggp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、小程序開(kāi)發(fā)、網(wǎng)站改版、虛擬主機(jī)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)