sqlserverkb的简单介绍

sqlserver2019每个数据文件的基本存储单位大小

sqlserver2019每个数据文件的基本存储单位为8KB。根据查询相关公开信息,数据文件的初始存储大小为13MB,每个数据文件的基本存储单位的大小是8KB,每1MB数据文件可以容纳128页,页是sqlserver2019中用于数据存储的最基本单位。

在香洲等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站设计 网站设计制作按需定制,公司网站建设,企业网站建设,成都品牌网站建设,成都全网营销推广,外贸网站制作,香洲网站建设费用合理。

oracle中float 在sqlserver中对应哪个 类型

Oracle SQLServer    比较

SQLServer 常见的数据库类型

字符数据类型   CHAR   CHAR :都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb 

变长字符数据类型   VARCHAR2   VARCHAR   :racle里面最大长度为4kb,SQLServer里面最大长度为8kb 

根据字符集而定的固定长度字符串   NCHAR :NCHAR   前者最大长度2kb后者最大长度4kb 

根据字符集而定的可变长度字符串   NVARCHAR2   NVARCHAR   :者最大长度都为4kb 

日期和时间数据类型   DATE   有Datetime和Smalldatetime两种   在oracle里面格式为DMY在SQLSerser里面可以调节,默认的为MDY 

数字类型   NUMBER(P,S)   NUMERIC[P(,S)] :Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。 

数字类型   DECIMAL(P,S)   DECIMAL[P(,S)]   :racle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。  

整数类型   INTEGER   INT   同为整数类型,存储大小都为4个字节 

浮点数类型   FLOAT   FLOAT 

实数类型   REAL   REAL

ORACLE的数据类型 

常用的数据库字段类型如下:

字段类型           中文说明          限制条件         其它说明 

CHAR         固定长度字符串    最大长度2000 bytes 

VARCHAR2    可变长度的字符串   最大长度4000 bytes    可做索引的最大长度749 

NCHAR      根据字符集而定的固定长度字符串 最大长度2000 bytes 

NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes 

DATE        日期(日-月-年)   DD-MM-YY(HH-MI-SS) 

LONG        可变长度的字符数据 最大长度2G(231-1)足够存储大部头著作 

RAW      固定长度二进制数据   最大长度2000 bytes 可存放比较小的多媒体图象声音等 

LONG RAW 可变长度的二进制数据 最大长度2G 可存放比较大的多媒体图象声音等 

BLOB     大型的二进制对象(可变长度)最大长度4G 

CLOB     大型的CHAR类型数据 

NCLOB    大型的NCHAR类型数据 

BFILE    存放在数据库外的大型的二进制文件 

ROWID   数据表中记录的唯一行号10 bytes ********.****.****格式,*为0或1,存储在索引中。 

UROWID 同上 存储在索引中 

NROWID   二进制数据表中记录的唯一行号 最大长度4000 bytes 

NUMBER(P,S) 数字类型   P为总的位数,S为小数位 

DECIMAL(P,S) 数字类型P为总的位数,S为小数位 

INTEGER      整数类型 的整数 

FLOAT        浮点数类型 

NUMBER(38),双精度 

REAL   实数类型 

NUMBER(63),精度更高

注意:每个表中只能有一个LONG或LONG RAW列,……….。

几个常见的SQLSERVER和ORACLE数据类型对应关系表格

SQL Server和Oracle数据类型的对应关系

SQLServer表的大小与表占硬盘空间大小有什么区别,应该怎么去查这两项性能?

表的大小一般指表的行数,占用硬盘空间大小就比较复杂了,可以有以下几个参数:

分配空间,数据占用空间及索引占用空间。

执行

EXEC alltablecount

即可显示当前数据库所有表资源占用情况。

执行前,请前建立以下表,和两个存储过程:

1、先建立表:HY_SPACE

CREATE TABLE [HY_SPACE] (

[name] [nvarchar] (128) COLLATE Chinese_PRC_CI_AS NULL ,

[rows] [char] (11) COLLATE Chinese_PRC_CI_AS NULL ,

[reserved] [varchar] (18) COLLATE Chinese_PRC_CI_AS NULL ,

[data] [varchar] (18) COLLATE Chinese_PRC_CI_AS NULL ,

[index_size] [varchar] (18) COLLATE Chinese_PRC_CI_AS NULL ,

[unused] [varchar] (18) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

2、建立统计存储过程:

create procedure HYspaceused

@objname nvarchar(776) = null,

@updateusage varchar(5) = false

as

declare @idint

declare @typecharacter(2)

declare@pagesint

declare @dbname sysname

declare @dbsize dec(15,0)

declare @logsize dec(15)

declare @bytesperpagedec(15,0)

declare @pagesperMBdec(15,0)

create table #spt_space

(

rowsint null,

reserveddec(15) null,

datadec(15) null,

indexpdec(15) null,

unuseddec(15) null

)

if @updateusage is not null

begin

select @updateusage=lower(@updateusage)

if @updateusage not in ('true','false')

begin

raiserror(15143,-1,-1,@updateusage)

return(1)

end

end

if @objname IS NOT NULL

begin

select @dbname = parsename(@objname, 3)

if @dbname is not null and @dbname db_name()

begin

raiserror(15250,-1,-1)

return (1)

end

if @dbname is null

select @dbname = db_name()

select @id = null

select @id = id, @type = xtype

from sysobjects

where id = object_id(@objname)

if @id is null

begin

raiserror(15009,-1,-1,@objname,@dbname)

return (1)

end

if not exists (select * from sysindexes

where @id = id and indid 2)

if @type in ('P ','D ','R ','TR','C ','RF')

begin

raiserror(15234,-1,-1)

return (1)

end

else if @type = 'V '

begin

raiserror(15235,-1,-1)

return (1)

end

else if @type in ('PK','UQ')

begin

raiserror(15064,-1,-1)

return (1)

end

else if @type = 'F '

begin

raiserror(15275,-1,-1)

return (1)

end

end

if @updateusage = 'true'

begin

if @objname is null

dbcc updateusage(0) with no_infomsgs

else

dbcc updateusage(0,@objname) with no_infomsgs

print ' '

end

set nocount on

if @id is null

begin

select @dbsize = sum(convert(dec(15),size))

from dbo.sysfiles

where (status 64 = 0)

select @logsize = sum(convert(dec(15),size))

from dbo.sysfiles

where (status 64 0)

select @bytesperpage = low

from master.dbo.spt_values

where number = 1

and type = 'E'

select @pagesperMB = 1048576 / @bytesperpage

select database_name = db_name(),

database_size =

ltrim(str((@dbsize + @logsize) / @pagesperMB,15,2) + ' MB'),

'unallocated space' =

ltrim(str((@dbsize -

(select sum(convert(dec(15),reserved))

from sysindexes

where indid in (0, 1, 255)

)) / @pagesperMB,15,2)+ ' MB')

print ' '

insert into #spt_space (reserved)

select sum(convert(dec(15),reserved))

from sysindexes

where indid in (0, 1, 255)

select @pages = sum(convert(dec(15),dpages))

from sysindexes

where indid 2

select @pages = @pages + isnull(sum(convert(dec(15),used)), 0)

from sysindexes

where indid = 255

update #spt_space

set data = @pages

update #spt_space

set indexp = (select sum(convert(dec(15),used))

from sysindexes

where indid in (0, 1, 255))

- data

update #spt_space

set unused = reserved

- (select sum(convert(dec(15),used))

from sysindexes

where indid in (0, 1, 255))

select reserved = ltrim(str(reserved * d.low / 1024.,15,0) +

' ' + 'KB'),

data = ltrim(str(data * d.low / 1024.,15,0) +

' ' + 'KB'),

index_size = ltrim(str(indexp * d.low / 1024.,15,0) +

' ' + 'KB'),

unused = 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'

end

else

begin

insert into #spt_space (reserved)

select 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

update #spt_space

set indexp = (select sum(used)

from sysindexes

where indid in (0, 1, 255)

and id = @id)

- data

update #spt_space

set unused = reserved

- (select sum(used)

from sysindexes

where indid in (0, 1, 255)

and id = @id)

update #spt_space

set rows = i.rows

from sysindexes i

where i.indid 2

and i.id = @id

INSERT INTO HY_SPACE

select name = object_name(@id),

rows = convert(char(11), rows),

reserved = ltrim(str(reserved * d.low / 1024.,15,0) +

' ' + 'KB'),

data = ltrim(str(data * d.low / 1024.,15,0) +

' ' + 'KB'),

index_size = ltrim(str(indexp * d.low / 1024.,15,0) +

' ' + 'KB'),

unused = 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'

RETURN

end

return (0)

GO

3、主存储过程

create procedure alltablecount as

declare @name varchar(100)

TRUNCATE TABLE HY_SPACE

declare tablecur cursor for select name from sysobjects where xtype= 'u '

create table #tablecount(tablename varchar(100),reccount int)

open tablecur

fetch next from tablecur into @name

while @@fetch_status!=-1

begin

exec ('insert into #tablecount select tablename='''+@name+''',reccount=count(1) from '+@name+' ')

EXEC HYspaceused @NAME

fetch next from tablecur into @name

end

close tablecur

deallocate tablecur

select * from #tablecount order by reccount desc

select * from HY_SPACE

GO

SQLSERVER数据库中“页面”的概念解释?

SQL Server中,页(Page)是虚拟存储系统中固定长度的邻接虚拟地址块,在分页操作中作为一个单元从内存复制到磁盘和从磁盘复制回内存。SQL Server 以页为单位分配数据库空间。在 SQL Server 中,一页的大小为 8 千字节 (KB)。

库(library)是Analysis Services 中包含共享对象(如共享维度)的文件夹,可以由数据库内的多个对象使用。

表(table)是一种二维数据对象,由行和列组成,用于存储关系数据库中的数据。每个表存储有关由数据库建模的一类对象的信息。


网页名称:sqlserverkb的简单介绍
链接URL:http://myzitong.com/article/hcceps.html