• <nav id="kggui"></nav>
  • <optgroup id="kggui"></optgroup>
  • <menu id="kggui"></menu><xmp id="kggui"><nav id="kggui"></nav>
    <menu id="kggui"><menu id="kggui"></menu></menu>
    <nav id="kggui"></nav>

    sqlserver執行語句

    怎么利用sql server日志查看執行的語句

    --1.第一種測試方法

    declare @begin datetime,@end datetime

    set @begin =getdate()

    {你所要測試的sql語句}

    set @end=getdate()

    PRINT DATEDIFF(millisecond, @begin, @end)/1000.0 --單位:s

    --2.另一種測試方法(將執行每個語句時采取的步驟作為行集返回,通過層次結構樹的形式展示出來)

    SET STATISTICS PROFILE ON:顯示分析、編譯和執行查詢所需的時間(以毫秒為單位)。

    SET STATISTICS IO ON:報告與語句內引用的每個表的掃描數、邏輯讀取數(在高速緩存中訪問的頁數)和物理讀取數(訪問磁盤的次數)有關的信息。

    SET STATISTICS TIME ON:顯示每個查詢執行后的結果集,代表查詢執行的配置文件。

    SET STATISTICS profile on

    SET STATISTICS io ON

    SET STATISTICS time ON

    go

    ---你要測試的sql語句

    {你要測試的sql語句}

    SET STATISTICS profile OFF

    SET STATISTICS io OFF

    SET STATISTICS time OFF

    go

    3.對SQL SERVER進行設置!!!!

    {查詢-查詢選項-高級里,有個SET STATISTICS TIME勾上,然后執行SQL,看消息,就有執行時間了}

    怎樣優化SQL語句的執行

    環境:oracle 817 + linux + 陣列柜 swd_billdetail 表5000萬條數據 SUPER_USER 表2800條數據 連接列上都有索引,而且super_user中的一條對應于swd_billdetail表中的很多條記錄表與索引都做了分析。

    實際應用的查詢為: select a。CHANNEL, B。

    user_class from swd_billdetail B, SUPER_USER A where A。cn = B。

    cn; 這樣在分析時導致查詢出的數據過多,不方便,所以用count(a。 CHANNEL||B。

    user_class)來代替,而且count(a。CHANNEL||B。

    user_class)操作本身并不占用過多的時間,所以可以接受此種替代。 利用索引查詢出SWD_BILLDETAIL表中所有記錄的方法 SQL> select count(id) from SWD_BILLDETAIL; COUNT(ID) ---------- 53923574 Elapsed: 00:02:166。

    00 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=18051 Card=1) 1 0 SORT (AGGREGATE) 2 1 INDEX (FAST FULL SCAN) OF 'SYS_C001851' (UNIQUE) (Cost=18051 Card=54863946) Statistics ---------------------------------------------------------- 0 recursive calls 1952 db block gets 158776 consistent gets 158779 physical reads 1004 redo size 295 bytes sent via SQL*Net to client 421 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 1 rows processed 利用全表掃描從SWD_BILLDETAIL表中取出全部數據的方法。 SQL> select count(user_class) from swd_billdetail; COUNT(USER_CLASS) ----------------- 53923574 Elapsed: 00:11:703。

    07 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=165412 Card=1 Bytes=2) 1 0 SORT (AGGREGATE) 2 1 TABLE ACCESS (FULL) OF 'SWD_BILLDETAIL' (Cost=165412 Card=54863946 Bytes=109727892) Statistics ---------------------------------------------------------- 0 recursive calls 8823 db block gets 1431070 consistent gets 1419520 physical reads 0 redo size 303 bytes sent via SQL*Net to client 421 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 1 rows processed select count(a。 CHANNEL||B。

    user_class) from swd_billdetail B, SUPER_USER A where A。cn = B。

    cn; EXEC_ORDER PLANLINE ---------- ----------------------------------------------------------------------------------------------------------- 6 SELECT STATEMENT OPT_MODE:CHOOSE (COST=108968,CARD=1,BYTES=21) 5 SORT (AGGREGATE) (COST=,CARD=1,BYTES=21) 4 NESTED LOOPS (COST=108968,CARD=1213745,BYTES=25488645) 1 TABLE ACCESS (FULL) OF 'SWORD。 SUPER_USER' (COST=2,CARD=2794,BYTES=27940) 3 TABLE ACCESS (BY INDEX ROWID) OF 'SWORD。

    SWD_BILLDETAIL' (COST=39,CARD=54863946,BYTES=603503406) 2 INDEX (RANGE SCAN) OF 'SWORD。 IDX_DETAIL_CN' (NON-UNIQUE) (COST=3,CARD=54863946,BYTES=) 這個查詢耗費的時間很長,需要1個多小時。

    運行后的信息如下: COUNT(A。CHANNEL||B。

    USER_CLASS) ------------------------------ 1186387 Elapsed: 01:107:6429。 87 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=108968 Card=1 Bytes=21) 1 0 SORT (AGGREGATE) 2 1 NESTED LOOPS (Cost=108968 Card=1213745 Bytes=25488645) 3 2 TABLE ACCESS (FULL) OF 'SUPER_USER' (Cost=2 Card=2794Bytes=27940) 4 2 TABLE ACCESS (BY INDEX ROWID) OF 'SWD_BILLDETAIL' (Cost=39 Card=54863946 Bytes=603503406) 5 4 INDEX (RANGE SCAN) OF 'IDX_DETAIL_CN' (NON-UNIQUE) (Cost=3 Card=54863946) Statistics ---------------------------------------------------------- 0 recursive calls 4 db block gets 1196954 consistent gets 1165726 physical reads 0 redo size 316 bytes sent via SQL*Net to client 421 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 2 sorts (memory) 0 sorts (disk) 1 rows processed 將語句中加入hints,讓oracle的優化器使用嵌套循環,并且大表作為驅動表,生成新的執行計劃: select /*+ ORDERED USE_NL(A) */ count(a。

    CHANNEL||B。user_class) from swd_billdetail B, SUPER_USER A where A。

    cn = B。cn; EXEC_ORDER PLANLINE ---------- ----------------------------------------------------------------------------------------------------- 6 SELECT STATEMENT OPT_MODE:CHOOSE (COST=109893304,CARD=1,BYTES=21) 5 SORT (AGGREGATE) (COST=,CARD=1,BYTES=21) 4 NESTED LOOPS (COST=109893304,CARD=1213745,BYTES=25488645) 1 TABLE ACCESS (FULL) OF 'SWORD。

    SWD_BILLDETAIL' (COST=165412,CARD=54863946,BYTES=603503406) 3 TABLE ACCESS (BY INDEX ROWID) OF 'SWORD。SUPER_USER。

    怎樣自動執行一段SQL語句

    Oracle下:

    1.新增一個批處理文件:如*

    2.新增一個SQL腳本文件:如*

    *中輸入:sqlplus 用戶名/密碼 @C:\*(假設*在c:盤根目錄下)

    4.然后運行這個批處理,就可以執行這個sql腳本了.

    假如:*的內容為:exec autojob;select * from *;select * from *;

    那么就能逐語句執行.

    SQL Server下:

    isql -U 用戶名 -P 密碼 -i c:\*

    同樣在bat文件中,輸入上面一行,在*輸入腳本.

    如:

    use 數據庫名

    go

    select * from 表名

    go

    sql 語句大全

    1. 查看數據庫的版本 select @@version 2. 查看數據庫所在機器操作系統參數 exec master..xp_msver 3. 查看數據庫啟動的參數 sp_configure 4. 查看數據庫啟動時間 select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1 查看數據庫服務器名和實例名 print 'Server Name。

    :' + convert(varchar(30),@@SERVERNAME) print 'Instance。

    :' + convert(varchar(30),@@SERVICENAME) 5. 查看所有數據庫名稱及大小 sp_helpdb 重命名數據庫用的SQL sp_renamedb 'old_dbname', 'new_dbname' 6. 查看所有數據庫用戶登錄信息 sp_helplogins 查看所有數據庫用戶所屬的角色信息 sp_helpsrvrolemember 修復遷移服務器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程 更改某個數據對象的用戶屬主 sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner' 注意:更改對象名的任一部分都可能破壞腳本和存儲過程。 把一臺服務器上的數據庫用戶登錄信息備份出來可以用add_login_to_aserver腳本 查看某數據庫下,對象級用戶權限 sp_helprotect 7. 查看鏈接服務器 sp_helplinkedsrvlogin 查看遠端數據庫用戶登錄信息 sp_helpremotelogin 8.查看某數據庫下某個數據對象的大小 sp_spaceused @objname 還可以用sp_toptables過程看最大的N(默認為50)個表 查看某數據庫下某個數據對象的索引信息 sp_helpindex @objname 還可以用SP_NChelpindex過程查看更詳細的索引情況 SP_NChelpindex @objname clustered索引是把記錄按物理順序排列的,索引占的空間比較少。

    對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數都用默認值。 查看某數據庫下某個數據對象的的約束信息 sp_helpconstraint @objname9.查看數據庫里所有的存儲過程和函數 use @database_name sp_stored_procedures 查看存儲過程和函數的源代碼 sp_helptext '@procedure_name' 查看包含某個字符串@str的數據對象名稱 select distinct object_name(id) from syscomments where text like '%@str%' 創建加密的存儲過程或函數在AS前面加WITH ENCRYPTION參數 解密加密過的存儲過程和函數可以用sp_decrypt過程 10.查看數據庫里用戶和進程的信息 sp_who 查看SQL Server數據庫里的活動用戶和進程的信息 sp_who 'active' 查看SQL Server數據庫里的鎖的情況 sp_lock 進程號1--50是SQL Server系統內部用的,進程號大于50的才是用戶的連接進程. spid是進程編號,dbid是數據庫編號,objid是數據對象編號 查看進程正在執行的SQL語句 dbcc inputbuffer () 推薦大家用經過改進后的sp_who3過程可以直接看到進程運行的SQL語句 sp_who3 檢查死鎖用sp_who_lock過程 sp_who_lock 11.查看和收縮數據庫日志文件的方法 查看所有數據庫日志文件大小 dbcc sqlperf(logspace) 如果某些日志文件較大,收縮簡單恢復模式數據庫日志,收縮后@database_name_log的大小單位為M backup log @database_name with no_log dbcc shrinkfile (@database_name_log, 5) 12.分析SQL Server SQL 語句的方法:set statistics time {on | off} set statistics io {on | off} 圖形方式顯示查詢執行計劃 在查詢分析器->查詢->顯示估計的評估計劃(D)-Ctrl-L 或者點擊工具欄里的圖形 文本方式顯示查詢執行計劃 set showplan_all {on | off} set showplan_text { on | off } set statistics profile { on | off } 13.出現不一致錯誤時,NT事件查看器里出3624號錯誤,修復數據庫的方法 先注釋掉應用程序里引用的出現不一致性錯誤的表,然后在備份或其它機器上先恢復然后做修復操作 alter database [@error_database_name] set single_user 修復出現不一致錯誤的表 dbcc checktable('@error_table_name',repair_allow_data_loss) 或者可惜選擇修復出現不一致錯誤的小型數據庫名 dbcc checkdb('@error_database_name',repair_allow_data_loss) alter database [@error_database_name] set multi_user CHECKDB 有3個參數:repair_allow_data_loss 包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文本對象,這些修復可能會導致一些數據丟失。

    修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。 如果回滾修復,則數據庫仍會含有錯誤,應該從備份進行恢復。

    如果由于所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決于該修復的修復。 修復完成后,請備份數據庫。

    repai*_**st 進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。 這些修復可以很快完成,并且不會有丟失數據的危險。

    repair_rebuild 執行由 repai*_**st 完成的所有修復,包括需要較長時間的修復(如重建索引)。 執行這些修復時不會有丟失數據的危險。

    添加、刪除、修改使用*e(Sql)命令執行操作 ╔--------------------╗ ☆ 數據記錄篩選 ☆ ╚--------------------╝ 注意:單雙引號的用法可能有誤(沒有測式) Sql = "Select Distinct 字段名 From 數據表" Distinct函數,查詢數據庫存表內不重復的記錄 Sql = "Select Count(*) From 數據表 where 字段名1>#18:0:0# and 。

    轉載請注明出處華閱文章網 » sqlserver執行語句

    短句

    婚姻的經典語句

    閱讀(244)

    婚姻經典名言名句大全-搜狗問問 1、有的丈夫之所以是好丈夫,就是因為他把每個月的收入先花在房貸、家用、孩子和儲備上,再把剩下來的錢給妻子買衣服、買禮物,如果還有結余他才會給自己買東西,如果他的妻子也是這樣做的,那他們的家庭就會很溫

    短句

    優美的語句大全

    閱讀(218)

    優美句子大全 ●湖是活的,層層鱗浪隨風而起,伴著跳躍的陽光,伴著我的心,在追逐,再嬉戲。 ●湖水在枯草叢里微微低語,遠處不時傳來一兩只小鴨的撲翅聲,使月夜的湖面更顯得孤寂和冷清。 ●數葉白帆,在這水天一色金光閃閃的海面上,就像幾片雪白的羽

    短句

    形容帥的語句

    閱讀(258)

    形容男主角帥的語句 沒有人能直視他的眼睛,凝重卻深情,仿佛他銳利的目光可以穿透你的心。陽光打在他筆挺的鼻梁上,順著嘴角好看的弧度泄了下來,灑滿他潔凈的衣襟,長長的頭發搭在肩上,在微風中若起若浮,顯得英氣十足。俊朗的外表,一襲白色的長袍

    短句

    update語句access

    閱讀(449)

    什么在ACCess的數據庫啟動update語句 以ACCESS 2003為例,操作方法如下。首先,打開access數據庫,數據庫的左邊有“表”、“查詢”、“報表”等選項卡,選擇“查詢”,然后點擊“新

    短句

    sql語句軟件

    閱讀(296)

    SQL是哪個公司的軟件 SQL做為軟件的簡稱,指的是微軟公司Microsoft 的 SQL Server數據庫管理系統。SQL Server 是一個關系數據庫管理系統,它最初是由Microsoft Sybase 和Ashto

    短句

    sql語句notin怎么用

    閱讀(487)

    sql語句not in 和not exist各自的用法和區別 in 和 exists也是很好區別的.in 是一個集合運算符.a in {a,c,d,s,d。.}這個運算中,前面是一個元素,后面是一個集合,集合中的元素類型是和前面的元素一樣的. 而exists

    短句

    跳出循環的語句

    閱讀(389)

    怎么跳出這個for循環 在for循環語句中執行break語句,即可跳出該for循環。 break 在一些計算機編程語言中是保留字,其作用大多情況下是終止所在層的循環。在 C語言 的 switch(開關語句)或for循環語句中,break 語句可用來在執行完一

    短句

    sql測試語句

    閱讀(215)

    如何測試sql語句性能,提高執行效率 有時候我們經常為我們的sql語句執行效率低下發愁,反復優化后,可還是得不到提高那么你就用這條語句找出你sql到底是在哪里慢了示例:SET STA

    短句

    在c語言的if語句中

    閱讀(253)

    C語言中if語句的三種形式到底是怎樣的 1)簡化形式if(表達式) 語句塊 如: if(x>y) printf(“%d”,x); 2)一般形式if (表達式) 語句塊1 else 語句塊2例如:if (x>y)printf(“max=%d”,

    短句

    sql語句練習

    閱讀(237)

    兩個SQL語言練習題一、有兩張表USER(uid,name,te 1。SQL-Server的SQL select * from USER where uid in(select top 2 uid from KEYWORDS group by uid or

    短句

    c語言的條件語句

    閱讀(263)

    C語言中的的if語句共有多少種格式 3種形式1、 第一種形式為基本形式:ifif(表達式) 語句其語義是:如果表達式的值為真,則執行其后的語句,否則不執行該語句。2、第二種形式為: if-el

    短句

    英語句子大全小學

    閱讀(202)

    小學英語句子大全 I. Reception入園接待 1. Hi! / Hello! 你好! 2. Good morning. 早上好。 3. Hello, nice to meet you. / Nice to see you. 你好,見到你真高興。 4.

    短句

    忘記語句

    閱讀(236)

    忘記過去的傷感句子 1.不爭朝夕,不談悲喜,寧靜,安然。2.多希望身邊有個你,可以溫暖我身邊的空氣3.經常被人誤解,可是又懶得解釋。4.我知道有些東西已經在我不知不覺中改變了5.不要在十六七歲愛上誰,因為那個人會是你最愛的人。6.偽裝的再好,也

    短句

    平靜語句

    閱讀(213)

    描寫安靜的句子 同學們異常的安靜,我聽到老師手表微弱嘀嗒聲 .夜靜得像一潭水,似乎所有的生靈都已經睡了,一切顯得那么安謐…… 安靜的連一根針掉下來的聲音都聽得見.靜謐的

    短句

    婚姻的經典語句

    閱讀(244)

    婚姻經典名言名句大全-搜狗問問 1、有的丈夫之所以是好丈夫,就是因為他把每個月的收入先花在房貸、家用、孩子和儲備上,再把剩下來的錢給妻子買衣服、買禮物,如果還有結余他才會給自己買東西,如果他的妻子也是這樣做的,那他們的家庭就會很溫

    短句

    優美的語句大全

    閱讀(218)

    優美句子大全 ●湖是活的,層層鱗浪隨風而起,伴著跳躍的陽光,伴著我的心,在追逐,再嬉戲。 ●湖水在枯草叢里微微低語,遠處不時傳來一兩只小鴨的撲翅聲,使月夜的湖面更顯得孤寂和冷清。 ●數葉白帆,在這水天一色金光閃閃的海面上,就像幾片雪白的羽

    短句

    形容帥的語句

    閱讀(258)

    形容男主角帥的語句 沒有人能直視他的眼睛,凝重卻深情,仿佛他銳利的目光可以穿透你的心。陽光打在他筆挺的鼻梁上,順著嘴角好看的弧度泄了下來,灑滿他潔凈的衣襟,長長的頭發搭在肩上,在微風中若起若浮,顯得英氣十足。俊朗的外表,一襲白色的長袍

    短句

    sql語句軟件

    閱讀(296)

    SQL是哪個公司的軟件 SQL做為軟件的簡稱,指的是微軟公司Microsoft 的 SQL Server數據庫管理系統。SQL Server 是一個關系數據庫管理系統,它最初是由Microsoft Sybase 和Ashto

    短句

    update語句access

    閱讀(449)

    什么在ACCess的數據庫啟動update語句 以ACCESS 2003為例,操作方法如下。首先,打開access數據庫,數據庫的左邊有“表”、“查詢”、“報表”等選項卡,選擇“查詢”,然后點擊“新

    短句

    sql語句notin怎么用

    閱讀(487)

    sql語句not in 和not exist各自的用法和區別 in 和 exists也是很好區別的.in 是一個集合運算符.a in {a,c,d,s,d。.}這個運算中,前面是一個元素,后面是一個集合,集合中的元素類型是和前面的元素一樣的. 而exists

    短句

    跳出循環的語句

    閱讀(389)

    怎么跳出這個for循環 在for循環語句中執行break語句,即可跳出該for循環。 break 在一些計算機編程語言中是保留字,其作用大多情況下是終止所在層的循環。在 C語言 的 switch(開關語句)或for循環語句中,break 語句可用來在執行完一

    短句

    cbreak語句

    閱讀(240)

    C語言中break語句的用法 最好舉一兩個例子 要能運行的簡單程序 - 搜 break語句通常用在循環語句和開關語句中。當break用于開關語句switch中 時, 可使程序跳出switch而執行s

    久久热在线视频