在学习SQLserver过程中,由于现在数据库的图形管理工具功能越来越强大,用户对数据库的组成结构不是很了解,会给日后管理或调整带来问题?
此文将简单介绍SQL SERVER数据库组成,从用户角度来看,数据库内含许多对象,包括:数据表,视图、索引、存储过程等,如下图为SQL Server数据库的逻辑结构:
然而从数据库物理结构来看,每个SQL数据库是由“数据文件”与“日志文件”组成,如下图为:数据库物理结构
当数据库文件和日志文件存放在同一个硬盘,数据库可以正常动作,但是如果大量的事务处理可能会导致性能下降,因为读写数据与日志的动作如果同时发生,容易产生磁盘竞争,I/O效率会打上折扣,事务处理速度可以会有所下降。
SQL只会为数据表和索引分配EXTENT与page,1个extent由8个连续的page组成,而Page存放上限为8060bytes,数据行不可以跨越page 。如当用户添加一笔数据时,数据会将他存放在该数据库表对应的PAGE。而假设这一笔数据长为80bytes,8060bytes/80bytes=100rows,PAGE就可以存放100Rows,如果第101笔数据要存放在同一个数据表时,SQL就会将他存到第二个PAGE,当存放第801笔数据时,SQL才会配置第二个EXTENT,依此类推。
我们知道了只有数据表和索引存放在EXTENT和PAGE,那么视图,约束等对象时,SQL只会将该对象的定义存入系统数据库表。当空间不够时,不管是用户数据表或系统数据表,SQL就会自动配置新的EXTENT.
时间: 2024-10-14 00:46:30