下面有兩個sql語句可以達到在sql
server
2005/2008壓縮指定資料庫文件和日誌的大小的效果:
1、dbcc
shrinkdatabase
(transact-sql)
收縮指定資料庫中的數據文件和日誌文件的大小。
語法
dbcc
shrinkdatabase
(
'database_name'
|
database_id
|
0
[
,target_percent
]
[
,
{
notruncate
|
truncateonly
}
]
)
[
with
no_infomsgs
]
參數
'database_name'
|
database_id
|
0
要收縮的資料庫的名稱或
id。如果指定
0,則使用當前資料庫。
target_percent
資料庫收縮後的資料庫文件中所需的剩餘可用空間百分比。
notruncate
通過將已分配的頁從文件末尾移動到文件前面的未分配頁來壓縮數據文件中的數據。target_percent
是可選參數。
文件末尾的可用空間不會返回給操作系統,文件的物理大小也不會更改。因此,指定
notruncate
時,資料庫看起來未收縮。
notruncate
只適用於數據文件。日誌文件不受影響。
truncateonly
將文件末尾的所有可用空間釋放給操作系統,但不在文件內部執行任何頁移動。數據文件只收縮到最近分配的區。如果與
truncateonly
一起指定,將忽略
target_percent。
truncateonly
只適用於數據文件。日誌文件不受影響。
with
no_infomsgs
取消嚴重級別從
0
到
10
的所有信息性消息。
2. 如何查看資料庫表中的sql語句
兩種方式,一種是直接在sqlserver的列表中找到,另一種用寫語句的方式查詢。
方法一:
1、登陸SQL SERVER Manager Studio。
2、在左邊的樹找到自己要查詢的資料庫。如圖:
3、點擊「表」,就能看到這個庫中的所有表了。
方法二:
1、登陸SQL SERVER Manager Studio。
2、點擊左上角的「新建查詢」。
3、在窗口中編寫sql語句如下,然後運行
1
SELECT name FROM SysObjects Where XType='U' ORDER BY Name
結果截圖:
3. 怎麼查看sql2008資料庫文件
按F8,找到你所在資料庫的這張表,滑鼠右鍵,選擇「編寫腳本為」-->創建到-->文件。即可看到它的腳本了,視圖也一樣。該工具沒有現成的腳本可以獲得「建表的和視圖」,如要用腳步獲得,需要自己寫代碼。
4. 怎樣用SQL語句查詢一個資料庫中的所有表
查詢一個資料庫中的所有表sql語句是show tables;
顯示所有資料庫的命令是:show databases;要查看某個資料庫先要進入資料庫使用user <資料庫名>命令;進入資料庫之後才能查詢資料庫中有哪些表。使用以下命令即可查出所有表:
show tables;
(4)怎麼查看資料庫表的sql文件擴展閱讀
mysql資料庫的基本sql操作命令介紹:
1、顯示當前資料庫伺服器中的資料庫列表:mysql> SHOW DATABASES;
2、建立資料庫:mysql> CREATE DATABASE 庫名;
3、建立數據表:mysql> USE 庫名;mysql> CREATE TABLE 表名 (欄位名 VARCHAR(20), 字
名 CHAR(1));
4、刪除資料庫:mysql> DROP DATABASE 庫名;
5、刪除數據表:mysql> DROP TABLE 表名;
6、將表中記錄清空:mysql> DELETE FROM 表名;
7、往表中插入記錄:mysql> INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中數據:mysql-> UPDATE 表名 SET 欄位名1='a',欄位名2='b' WHERE 欄位名3='c';
9、用文本方式將數據裝入數據表中:mysql> load data local infile "d:/mysql.txt" into table 表名;
10、導入.sql文件命令:mysql> USE 資料庫名;mysql> source d:/mysql.sql;
5. sqlserver2008資料庫怎麼查看mysql資料庫的表
你把mysql資料庫導出來,然後再導入到sqlserver2008里,如果想直接查看好像是不可以,沒這么弄過,我一般都是用導入導出的方法。我不知道你為什麼要用server2008去查看mysql的數據呢,直接在mysql裡面查看不就行了。
6. t sql如何查看某個資料庫所有文件和文件組的名字
select * from information_schema.tables where table_type='base table'
沒太明白你說的文件組名是什麼意思,你看下下面的
select SERVERPROPERTY('MachineName'),host_name(),current_user,system_user
select * from dbo.sysdatabases
7. 怎樣用SQL語句查詢一個資料庫中的所有表
1、打開Microsoft SQL Server 2012,選中需要查詢所有表的資料庫。
8. sql文件怎麼打開
最簡單的sql文件打開方式就是通過系統自帶的文本編輯器,右鍵選擇「打開方式」,然後選擇使用「記事本」打開即可。SQL具有數據定義、數據操縱和數據控制的功能。
1、SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式又叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
9. 怎麼找資料庫sql文件
從trace文件中提取sql語句包括兩個步驟:
首先要找到sql語句本身,然後找到sql語句可能用到的綁定變數的值。
本文假設你已經找到了報錯的trace文件。
第一步:查找sql語句
跳到"Current cursor:"那行(在"*** Cursor Dump ***"部分的開始處)。記下和當前cursor關聯的數字(詳情參考下文例子)。
如果當前的游標數字是0,表示當前沒有sql語句。在這種情況下,最好是在trace文件前面的Call Stack Trace部分看看,這里告訴我們發生錯誤時正在做什麼。一般情況下,oracle技術支持在處理問題的時候,會查看trace文件。
如果當前游標是個非0數值,在trace文件後面的部分查找以"Cursor n"開頭的行,n表示你要找的游標號,從10.2及其以後的版本開始,查找"Cursor#n"開頭的行。找到後,在下一行,你會看到"cursor name:",sql語句就在其後。
注意:
通常情況下,你通過查找"Current SQL statement for this session:"就能很快定位該sql,一般會在trace文件的前面部分。
如果sql語句沒有用到綁定變數(例如. ":b1", ":b2", 等。),第二步可以不看了。
第二步:查找綁定變數的值
如果sql語句使用了綁定變數,根據游標中的sql語句,你就能定位特定的文本部分,和每個綁定變數的值關聯。文本的每部分以"bind x:"開頭,其中的x的范圍是0 到 n-1,其中的n代表綁定變數個數。
在sql語句和綁定變數之間可能會有大量的內存mp,可以忽略這些信息。
每個綁定變數會有很多屬性列表,下面是我們感興趣的一部分列表:
a.) dty 指數據類型,常見的值為:
1 VARCHAR2 or NVARCHAR2
2 NUMBER
8 LONG
11 ROWID
12 DATE
23 RAW
24 LONG RAW
96 CHAR
112 CLOB or NCLOB
113 BLOB
114 BFILE
b.) mxl 指最大長度,即變數佔用的最大位元組數,dty=2 and mxl=22 表示NUMBER(22)列
c.) scl 指位數 (對NUMBER列而言)
d.) pre 指小數點位數(對NUMBER列而言)
e.) value 指綁定變數的值
將游標mp中的綁定變數的值和sql語句中綁定變數的值直接對應:
:b1 ~ bind 0
:b2 ~ bind 1
:b3 ~ bind 2
以此類推………
綁定變數可以稱為:1, :2,等,或者:a1, :a2等。最關鍵的是,在sql語句中的排列順序和變數的mp部分的排列要完全一致。
現在你應該能找到綁定變數(包括長度,數值長度,精度)以及對應的值。
例子:
下面我們舉例說明在trace文件中如何提取sql語句。
特別注意:
如果使用字面值替代綁定變數,會導致優化器選擇不同的查詢路徑,從而使得問題可能不會再現。
Example 1:
******************** Cursor Dump ************************
Current cursor: 2, pgadep: 1
Cursor Dump:
----------------------------------------
我們查找cursor 2:
----------------------------------------
Cursor 2 (20139ad0): CURFETCH curiob: 2013bca4
curflg: 7 curpar: 20139ab0
curusr: 0 curses 587a250c
cursor name: select text from view$ where rowid=:1
child pin: 50a5b650, child lock: 50a5a628,
parent lock: 50a5a844
xscflg: 20141466, parent handle: 4f348490, xscfl2: 400
nxt: 2.0x0000006c nxt: 1.0x000001d8
Cursor
frame allocation mp:
frm: -------- Comment -------- Size Seg Off
bhp size: 52/560
bind 0: dty=11 mxl=16(16) mal=00
scl=00 pre=00 oacflg=18 oacfl2=1 size=16
offset=0
bfp=2013e9f4 bln=16 avl=16 flg=05
value=0000138C.0046.0004
當前SQL 語句:
select text from view$ where rowid=:1
綁定變數轉換成:
:1 ~ bind 0 - ROWID (dty=11), value = 0000138C.0046.0004
因此我們得到下面的原始sql語句:
select text from view$ where rowid=0000138C.0046.0004
Example 2:
******************** Cursor Dump ************************
Current cursor: 11, pgadep: 1
Cursor Dump:
----------------------------------------
查找cursor 11:
----------------------------------------
Cursor 11 (202cb9f0): CURBOUND curiob: 202f8b04
curflg: dd curpar:
0 curusr: 0 curses 30047c7c
cursor name: SELECT LOCKID FROM DBMS_LOCK_ALLOCATED WHERE NAME =
:b1 FOR UPDATE
child pin:
0, child lock: 300dc9b4, parent lock: 301730b8
xscflg: 1151421, parent handle: 3025b4dc
bind 0: dty=1 mxl=32(00) mal=00 scl=00 pre=00 oacflg=01
No bind buffers allocated
----------------------------------------
當前SQL 語句:
SELECT LOCKID FROM DBMS_LOCK_ALLOCATED WHERE NAME = :b1 FOR UPDATE
綁定變數:b1是VARCHAR2(32) 類型(dty=1, mxl=32), 但是在mp的那個時刻沒有給變數賦值("No bind buffers allocated").
Example 3:
******************** Cursor Dump ************************
Current cursor: 2, pgadep: 0
Cursor Dump:
----------------------------------------
...
----------------------------------------
Cursor 2 (20140444): CURNULL curiob: 0
curflg: 44 curpar: 0 curusr: 0 curses 701dc94c
----------------------------------------
在這種情況下,當mp 的時候並沒有sql被執行
Example 4:
******************** Cursor Dump ************************
Current cursor: 1, pgadep: 0
pgactx: ccf361c0
ctxcbk: 0 ctxqbc: 0 ctxrws: 0
Cursor Dump:
----------------------------------------
Cursor 1 (400d9478): CURBOUND curiob:
400e43d8
curflg: 4c curpar: 0 curusr: 0 curses d5348f80
cursor name: BEGIN myparser.convert('/tmp','workflow000_2.log',2);
END;
child pin: d14a4d70, child lock: d1589968, parent lock: d14c64a0
xscflg: 100064, parent handle: d083f1c0, xscfl2: 4040408
nxt: 1.0x000000a8
Cursor frame allocation mp:
frm: -------- Comment -------- Size Seg Off
----------------------------------------
沒有用到綁定變數,所以,sql語句就是PL/SQL塊:
BEGIN myparser.convert('/tmp','workflow000_2.log',2); END; 本信息來源:CAD教育網 www.cade.com