當前位置:首頁 » 編程語言 » sqlserversql分析

sqlserversql分析

發布時間: 2022-05-16 10:33:06

sql查詢分析器是什麼

在這個對話框里,您可以指定資料庫伺服器的修復設置,以及原始安裝的數據文件的位置。要讓這一過程更容易和更快,就要把x86目錄從SQL的光碟上復制到硬碟上,並把指向改到本地的副本。一旦驗證完了所有的信息,點擊「重建(Rebuild)」。然後系統就會提示您確認操作,如圖C所示。

圖C
點擊「確定(Yes)」。一旦重建過程完成,您會看到一條重建成功的消息。您現在就有了一個全新的主資料庫,准備好修復主資料庫了。

首先,打開命令行提示符,輸入Program FilesMicrosoft SQL ServerMssqlBINN目錄下的SQLservr.exe –c –m命令,啟動單用戶模式下的SQL Server。結果如圖D所示。

圖D
在單用戶模式下啟動SQL Server之後,您可以利用備份文件修復主資料庫。您可以用「查詢分析器(Query Analyzer)」或者「SQL企業管理器(SQL EntERPrise Manager)」來修復它。如果使用查詢分析器,您就要像圖E一樣運行查詢。

圖E
如果使用企業伺服器,就要右擊主資料庫,選擇「所有任務|修復資料庫(All Tasks | Restore Database)」,瀏覽到您設備所在的位置。點擊兩次「OK」,您就可以成功地修復主資料庫了。修復完主資料庫,退出單用戶模式,在正常的操作模式下重新啟動SQL Server。

如果由於某種原因您的修復操作無法成功完成,那麼您可以試試別的方法。只用簡單地重建主資料庫並添加駐留在數據目錄下的所有資料庫就可以了。您可以用企業管理器或者查詢分析器來添加資料庫。在企業管理器里,右擊「資料庫 (Databases)」,選擇「添加資料庫(Attach Database)」,在查詢分析器里,用示例腳本就能夠添加您的資料庫了。

結束語

既然已經知道了如何在碰到災難的情況下成功地重建主資料庫,那麼您可以把這些技術增加到災難修復預案中去。這樣的話,您就不用再在SQL Server的主資料庫崩潰導致資料庫伺服器停止工作的情況下不知所措了。

Ⅱ 如何獲取SQL2005下的SQL語句的語義分析

我想獲取一段sql語句在 mssql2005下解析成的語句,
主要是想獲取這個sql所用到的所有的表的名字。(ps:復雜的sql語句的)
請高手幫忙 在線等~
我的意思是要從用戶輸入的sql語句中提取該語句中所用的表
或者是:
sql 執行的步驟

1. 解析器

第 1 階段是解析器階段,它將 SQL 文本轉換成語法樹。這個階段不查找系統目錄中的任何信息,不訪問資料庫。

2. 語義分析

第 2 階段分析由解析器創建的語法樹,並產生用於查詢的查詢控制塊和表達式樹。要構建這些內部數據結構,它執行以下操作:

驗證對象
解析 UDR
如果可能的話,消除常量
驗證對象

第 2 階段訪問資料庫中不同的系統目錄,以驗證查詢所引用的所有資料庫對象(諸如表、列、視圖、類型、UDR 等等)是否都存在。它在資料庫中找到這些對象的標識,然後創建查詢控制塊和表達式樹。

我要的就是驗證對象步驟里的表的信息

Ⅲ sql語句 sqlserver

朋友,sqlserver中不允許有兩條相同的數據行存在,當你在插入數據時,如果插入的兩條相同數據,系統將提示你:「列信息不足!」,這時候你只要插入一行自動增長行作為主鍵即可解決此問題,所以你這個問題只能查詢一個相對相同的值,即是:一行中大部分欄位相同的情況,語句如下:

select * from table1 a,table1 b where a.id =b.id and a.col1=b.col1 and a.col2 = b.col2;

這是一個自聯接,即:表自己與自己作聯接查詢,如果還要查的更精確,可以在where後面加更多的欄位來確定選定的行。

請好好理解這些概念,祝你成功 ^ ^)

Ⅳ 簡述SQL Server企業管理器和查詢分析器的作用

它是用來對本地或者遠程伺服器進行管理操作的伺服器應用程序查詢分析器:sqlserver2000查詢分析器是一種圖形工具,它允許用戶輸入和執行sql語句,並返回語句的執行結果。
一、企業管理器是SQLServer2000中最重要的一個產品組件。用戶和系統管理員通過企業管理器不僅能夠配置系統環境和管理SQLServer,而且所有SQLServer對象的建立與管理都可以通過它來完成。企業管理器的具體功能包括:注冊和管理SQLServer伺服器;管理SQLServer服務;創建和管理資料庫及各種資料庫對象;備份和恢復資料庫;對SQLServer系統進行安全管理;編寫和執行T-SQL腳本等。
二、企業管理器,它具有一個遵從微軟管理控制台(MMC)的管理界面。左窗格以層疊列表的形式(樹型)顯示注冊的所有SQLServer伺服器,以及每個伺服器中存儲的資料庫對象和提供的服務;右窗格顯示樹型目錄中所選擇目錄項的具體內容。
三、企業管理器和查詢分析器都是伺服器端集成的工具,我們可以通過企業管理器查看資料庫的結構和相關的對象,而用查詢分析器模擬客戶端的功能,這就類似聯接資料庫的操作,用查詢分析器可以在本地就把資料庫聯接的問題解決。在「控制台根目錄」下,有著我們要管理的SQLServer伺服器,順著它逐級展開,展開每一個節點時,右邊的主界面中都會顯示這個節點的內容。我們可以一直看到我們的SQLServer資料庫連接甚至更多。
四、菜單,選中「SQLServer伺服器」,查看一下「操作」菜單上的內容;再看一下「SQLServer伺服器」的右鍵菜單,會發現它們完全一樣。我們再選中「資料庫」這個節點,查看一下右鍵菜單和「操作」菜單的子菜單,它們還是完全一樣。這說明,「控制台」中的菜單,它們的內容不是一成不變的,而是由「控制台」所管理的內容來決定的。
五、「查看」菜單,它包含有「大圖標」、「小圖標」、「列表」、「詳細信息」幾個選項,我們可以通過它來設定界面中的內容以什麼方式來顯示。下面的「自定義」命令可以打開「自定義視圖」對話框,我們可以通過這個對話框來更改選項以顯示或者隱藏MMC中的項目,例如「控制台樹」或者「標准工具欄」等。「工具」菜單裡面的內容是SQLServer所特有的,單獨的「控制台」不會有這項功能,它裡面的內容全部是針對「SQLServer企業管理器」的。我們可以通過它來調度作業、打開「SQL查詢分析器」、備份和還原資料庫以及管理SQLServer消息等。而且,「SQLServer企業管理器」自帶了許多向導,我們也可以在這里啟動這些向導(事實上我們絕大多數情況下是通過這里啟動這些向導)。

Ⅳ SQL Server 的優點有哪些。

SQL Server是一個關系資料庫管理系統,它最初是由Microsoft, Sybase和Ashton-Tate三家公司共同開發的於1988 年推出了第一個OS/2 版本,在Windows NT 推出後,Microsoft與Sybase在SQL Server的開發上就分道揚鑣了,Microsoft將SQL Server移植到Windows NT系統上專注於開發推廣SQL Server的Windows NT版本,Sybase則較專注於SQL Server在UNIX操作系統上的應用.Microsoft SQL Server以後簡稱為SQL Server或MS SQL Server 。

隨著信息技術的發展,計算機處理數據的方式也發生著變化,文件管理系統--資料庫管理系統。Microsoft SQL Server是一個分布式的關系型資料庫管理系統,具有客戶機/伺服器體系結構,採用了Transact-sql的sql語言在客戶機與伺服器間傳遞客戶機的請求與伺服器的處理結果。

眾所周知,SQL Server能夠滿足今天的商業環境要求不同類型的資料庫解決方案。它一種應用廣泛的資料庫管理系統,具有許多顯著的優點:易用性、適合分布式組織的可伸縮性、用於決策支持的數據倉庫功能、與許多其他伺服器軟體緊密關聯的集成性、良好的性價比等。性能、可伸縮性及可靠性是基本要求,而進入市場時間也非常關鍵。

除這些SQL Server的優點外,SQLServer還為您的數據管理與分析帶來了靈活性,允許單位在快速變化的環境中從容響應,從而獲得競爭優勢。從數據管理和分析角度看,將原始數據轉化為商業智能和充分利用Web帶來的機會非常重要。作為一個完備的資料庫和數據分析包,SQLServer為快速開發新一代企業級商業應用程序、為企業贏得核心競爭優勢打開了勝利之門。作為重要的基準測試可伸縮性和速度獎的記錄保持者,SQLServer是一個具備完全Web支持的資料庫產品,提供了對可擴展標記語言 (XML)的核心支持以及在Internet上和防火牆外進行查詢的能力。

SQL Server的優點眾多,但是Microsoft SQL Server和其他資料庫產品相比也存在著以下劣勢:

1開放性。只能運行在微軟的windows平台,沒有絲毫的開放性可言。
2可伸縮性,並行性。並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限。
3性能穩定性。SQLServer當用戶連接多時性能會變的很差,並且不夠穩定。
4使用風險。SQLServer完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需時間來證明。並不十分兼容早期產品。使用需要冒一定風險。
5客戶端支持及應用模式。只支持C/S模式。

Ⅵ sqlserver executionstack怎麼分析

1,victim-list沒什麼可分析的。
2,process-list中關於各個process的詳細信息很重要。
3,再看process中的inputbuf。這個tag表明了process正在運行的語句,因此對於定位死鎖非常重要。但這里有一個問題,比如上例中,inputbuf是一個存儲過程,其中又嵌套了很多其他的存儲過程,而我們需要在其中找出直接導致死鎖的語句並優化,從而解決或減少死鎖。自此我們已經有的信息是:導致死鎖的語句由inputbuf中的語句調用,同時導致死鎖的語句必定是對表MatchService的修改語句。如果存儲過程很簡單,到此DBA已經能夠找到直接導致死鎖的sql了,分析過程到此結束。而如果存儲過程很復雜,則需要進一步分析。
4,現在再進一步考察tag, executionStack。executionStack表明了死鎖發生時,由該process調用的,正在運行的所有sql。上例中有4條sql。同時仔細觀察上例可以發生,兩個process的executionStack是完全相同的,因此考察一個就可以了。另外,如果procname不為空則直接得到了sql,但上例中該tag為空。
我們可能還需要找出包含該sql的具體存儲過程,然後進行優化。出了用sql查詢外,推薦使用一個叫「SQL Search」的第三方工具,很方便,免費的。

Ⅶ 如何利用sqlserver數據分析技術分析安全日誌

定期分析sqlserver日誌是DBA很重要的任務,那如何才能查看sqlserver日誌呢?
在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看:
DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )
參數:
Dbid or dbname - 任一資料庫的ID或名字
type - 輸出結果的類型:
0 - 最少信息(operation, context, transaction id)
1 - 更多信息(plus flags, tags, row length)
2 - 非常詳細的信息(plus object name, index name,page id, slot id)
3 - 每種操作的全部信息
4 - 每種操作的全部信息加上該事務的16進制信息
默認 type = 0
要查看MSATER資料庫的事務日誌可以用以下命令:
DBCC log (master)
釋放日誌空間
1.清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
2.截斷事務日誌:
BACKUP LOG 資料庫名 WITH NO_LOG
3.收縮資料庫文件(如果不壓縮,資料庫的文件不會減小
企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件
--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
--選擇數據文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
也可以用SQL語句來完成
--收縮資料庫
DBCC SHRINKDATABASE(客戶資料)
--收縮指定數據文件,1是文件號,可以通過這個語句查詢到:select * from sysfiles
DBCC SHRINKFILE(1)
4.為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行)
a.分離資料庫:
企業管理器--伺服器--資料庫--右鍵--分離資料庫
b.在我的電腦中刪除LOG文件
c.附加資料庫:
企業管理器--伺服器--資料庫--右鍵--附加資料庫
此法將生成新的LOG,大小隻有500多K
或用代碼:
下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。
a.分離
E X E C sp_detach_db @dbname = 'pubs'
b.刪除日誌文件
c.再附加
E X E C sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
5.為了以後能自動收縮,做如下設置:
企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"
--SQL語句設置方式:
E X E C sp_dboption '資料庫名', 'autoshrink', 'TRUE'
6.如果想以後不讓它日誌增長得太大
企業管理器--伺服器--右鍵資料庫--屬性--事務日誌
--將文件增長限制為xM(x是你允許的最大數據文件大小)
--SQL語句的設置方式:
alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)
特別注意:
請按步驟進行,未進行前面的步驟,請不要做後面的步驟
否則可能損壞你的資料庫.
一般不建議做第4,6兩步
第4步不安全,有可能損壞資料庫或丟失數據
第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.

另外提供一種更簡單的方法,建議大家使用。
更簡單的方法:
1。右建資料庫屬性窗口--故障還原模型--設為簡單
2。右建資料庫所有任務--收縮資料庫
3。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄

Ⅷ SQLServer如何用T—SQL命令查詢一個資料庫中有哪些表

所有用戶表都存放在資料庫中的系統對象表sysobjects中。

筆者以個人專用資料庫為例:

select *

from sysobjects --系統對象表

where xtype = 'U' --U表示所有用戶表

執行後影響的行數為180(rows),如下圖:

熱點內容
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:84
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:640
java的vector 發布:2024-04-27 07:05:00 瀏覽:204
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601
編程日課 發布:2024-04-27 05:56:54 瀏覽:620
漏洞上傳工具 發布:2024-04-27 05:50:58 瀏覽:717