sql資料庫表大小
直接在查詢分析器運行即可:
declare @id int
declare @type character(2)
declare @pages
int
declare @dbname sysname
declare @dbsize dec(15,0)
declare @bytesperpage dec(15,0)
declare @pagesperMB dec(15,0)
create table #spt_space
(
objid int null,
rows int null,
reserved dec(15) null,
data dec(15) null,
indexp dec(15) null,
unused dec(15) null
)
set nocount on
-- Create a cursor to loop through the user tables
declare c_tables cursor for
select id
from sysobjects
where xtype = 'U'
open c_tables
fetch next from c_tables
into @id
while @@fetch_status = 0
begin
/* Code from sp_spaceused */
insert into #spt_space (objid, reserved)
select objid = @id, sum(reserved)
from sysindexes
where indid in (0, 1, 255)
and id = @id
select @pages = sum(dpages)
from sysindexes
where indid < 2
and id = @id
select @pages = @pages + isnull(sum(used), 0)
from sysindexes
where indid = 255
and id = @id
update #spt_space
set data = @pages
where objid = @id
/* index: sum(used) where indid in (0, 1, 255) - data */
update #spt_space
set indexp = (select sum(used)
from sysindexes
where indid in (0, 1, 255)
and id = @id)
- data
where objid = @id
/* unused: sum(reserved) - sum(used) where indid in (0, 1, 255) */
update #spt_space
set unused = reserved
- (select sum(used)
from sysindexes
where indid in (0, 1, 255)
and id = @id)
where objid = @id
update #spt_space
set rows = i.rows
from sysindexes i
where i.indid < 2
and i.id = @id
and objid = @id
fetch next from c_tables
into @id
end
select TableName = (select left(name,60) from sysobjects where id = objid),
Rows = convert(char(11), rows),
ReservedKB = ltrim(str(reserved * d.low / 1024.,15,0) + ' ' + 'KB'),
DataKB = ltrim(str(data * d.low / 1024.,15,0) + ' ' + 'KB'),
IndexSizeKB = ltrim(str(indexp * d.low / 1024.,15,0) + ' ' + 'KB'),
UnusedKB = ltrim(str(unused * d.low / 1024.,15,0) + ' ' + 'KB')
from #spt_space, master.dbo.spt_values d
where d.number = 1
and d.type = 'E'
order by reserved desc
drop table #spt_space
close c_tables
deallocate c_tables
『貳』 如何用sql統計資料庫表的大小
查看mysql資料庫大小的四種辦法,分別有以下四種:
第一種:進去指定schema 資料庫(存放了其他的資料庫的信息)
use information_schema
第二種:查詢所有數據的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES(http://www.6ddd.com)
第三種:查看指定資料庫的大小,比如說:資料庫apoyl
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='apoyl';
第四種:查看指定資料庫的表的大小,比如說:資料庫apoyl 中apoyl_test表
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='apoyl' and table_name='apoyl_test';
『叄』 SQLserver資料庫怎麼給指定的表區分大小寫
這個 ALTER DATABASE 語句用來修改資料庫的屬性,比如改變它的默認排序規則(即 COLLATE)。因此,你可以使用它來設置資料庫中所有表都區分大小寫。
要使用這個語句,你需要先確保你有足夠的許可權去修改資料庫。然後,你可以在 SQL Server Management Studio 中執行以下步驟:
打開 SQL Server Management Studio 並連接到你想要修改的資料庫伺服器。
在對象資源管理器中,右鍵單擊你想要修改的資料庫旅襪陸,然後選擇「屬性」。
在「資料庫屬性」窗口中,選擇「排序規則」選項卡。
在「排序規則」下拉列表中,選擇「Chinese_PRC_CS_AS」。
單擊「確定」按鈕以拆頃保存更改。
這樣,資料庫中的所有表都將區分大小寫。但是,如果你只想修改某個特定的表,那麼你可以在創建表時指定它的排序規則,或者使用 ALTER TABLE 語句來修改表的排序規則。
舉個例子,假設你想要修改名為「TBL_ACCOUNT」的表,使其區分大小寫,你可以在創建表時指定排序規則:
這個 ALTER DATABASE 語句用來修改資料庫的屬性,比如改變它的默認排序規則(即 COLLATE)。因此,你可以使用它來設置資料庫中所有表都區分大小寫。
要使用這個語句,你需要先確保你有足夠的許可權去修改資料庫。然後,你可以在 SQL Server Management Studio 中執行以下步驟:
打開 SQL Server Management Studio 並連接到你想要修改的資料庫伺服器。
在對象資源管理器中,右鍵單擊你想要修改的資料庫,然後選擇「屬性」。
在「資料庫屬性」窗口中,選擇「排序規則」選項卡。
在「排序規則」下拉列表中,選擇「Chinese_PRC_CS_AS」。
單擊「確定」按鈕以保存更改。
這樣,資料庫中的所有表都將區分大小寫。但是,如果你只想修改某個特定的表,那麼你可以在創建表時指定它的排序規則,或者使用好賣 ALTER TABLE 語句來修改表的排序規則。
舉個例子,假設你想要修改名為「TBL_ACCOUNT」的表,使其區分大小寫,你可以在創建表時指定排序規則:
CREATE TABLE TBL_ACCOUNT (
id INT PRIMARY KEY,
username VARCHAR(255) COLLATE Chinese_PRC_CS_AS,
password VARCHAR(255)
);
或者,如果你已經創建了表,你可以使用 ALTER TABLE 語句來修改表的排序規則:
ALTER TABLE TBL_ACCOUNT
ALTER COLUMN username VARCHAR(255) COLLATE Chinese_PRC_CS_AS;
這樣就可以讓表「TBL_ACCOUNT」區分大小寫了。
『肆』 sql資料庫中常用的數據類型有什麼
一、整數數據類型:整數數據類型是最常用的數據類型之一。
1、INT(INTEGER)
INT (或INTEGER)數據類型存儲從-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之間的所有正負整數。每個INT 類型的數據按4 個位元組存儲,其中1 位表示整數值的正負號,其它31 位表示整數值的長度和大小。
2、SMALLINT
SMALLINT 數據類型存儲從-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之間的所有正負整數。每個SMALLINT 類型的數據佔用2 個位元組的存儲空間,其中1 位表示整數值的正負號,其它15 位表示整數值的長度和大小。
二、浮點數據類型:浮點數據類型用於存儲十進制小數。浮點數值的數據在SQL Server 中採用上舍入(Round up 或稱為只入不舍)方式進行存儲。
1、REAL數據類型
REAL數據類型可精確到第7 位小數,其范圍為從-3.40E -38 到3.40E +38。 每個REAL類型的數據佔用4 個位元組的存儲空間。
2、FLOAT
FLOAT數據類型可精確到第15 位小數,其范圍為從-1.79E -308 到1.79E +308。 每個FLOAT 類型的數據佔用8 個位元組的存儲空間。 FLOAT數據類型可寫為FLOAT[ n ]的形式。n 指定FLOAT 數據的精度。n 為1到15 之間的整數值。
當n 取1 到7 時,實際上是定義了一個REAL 類型的數據,系統用4 個位元組存儲它;當n 取8 到15 時,系統認為其是FLOAT 類型,用8 個位元組存儲它。
三、二進制數據類型
1、BINARY
BINARY 數據類型用於存儲二進制數據。其定義形式為BINARY( n), n 表示數據的長度,取值為1 到8000 。在使用時必須指定BINARY 類型數據的大小,至少應為1 個位元組。BINARY 類型數據佔用n+4 個位元組的存儲空間。
在輸入數據時必須在數據前加上字元「0X」 作為二進制標識,如:要輸入「abc 」則應輸入「0xabc 」。若輸入的數據過長將會截掉其超出部分。若輸入的數據位數為奇數,則會在起始符號「0X 」後添加一個0,如上述的「0xabc 」會被系統自動變為「0x0abc」。
2、VARBINARY
VARBINARY數據類型的定義形式為VARBINARY(n)。 它與BINARY 類型相似,n 的取值也為1 到8000, 若輸入的數據過長,將會截掉其超出部分。
不同的是VARBINARY數據類型具有變動長度的特性,因為VARBINARY數據類型的存儲長度為實際數值長度+4個位元組。當BINARY數據類型允許NULL 值時,將被視為VARBINARY數據類型。
四、邏輯數據類型
1、BIT:BIT數據類型佔用1 個位元組的存儲空間,其值為0 或1 。如果輸入0 或1 以外的值,將被視為1。 BIT 類型不能定義為NULL 值(所謂NULL 值是指空值或無意義的值)。
五、字元數據類型:字元數據類型是使用最多的數據類型。它可以用來存儲各種字母、數字元號、特殊符號。一般情況下,使用字元類型數據時須在其前後加上單引號』或雙引號」 。
1、CHAR
CHAR 數據類型的定義形式為CHAR[ (n) ]。 以CHAR 類型存儲的每個字元和符號佔一個位元組的存儲空間。n 表示所有字元所佔的存儲空間,n 的取值為1 到8000, 即可容納8000 個ANSI 字元。
若不指定n 值,則系統默認值為1。 若輸入數據的字元數小於n,則系統自動在其後添加空格來填滿設定好的空間。若輸入的數據過長,將會截掉其超出部分。
(4)sql資料庫表大小擴展閱讀:
SQL包括了所有對資料庫的操作,主要是由4個部分組成:
1、數據定義:這一部分又稱為「SQL DDL」,定義資料庫的邏輯結構,包括定義資料庫、基本表、視圖和索引4部分。
2、數據操縱:這一部分又稱為「SQL DML」,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
3、數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
4、嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
『伍』 在sql server資料庫中如何得知表的大小而又不影響性能
你描述的不清楚到底是什麼表大小,但是談及性能,我猜想你應該是想知道表的行數,影響最低的方式就是通過系統函數來獲取,如圖。
selectcount(1)fromtest1
go
sp_spaceusedtest1