请问SQL SERVER服务器的存储数据库是本机还是远程服务器 请高手解答。

请问SQL SERVER服务器的存储数据库是本机还是远程服务器 请高手解答。,第1张

是服务器。

如果是sql server 的客户端和服务器都在本机的话,那么存储的就是本机的数据(即服务数据。)。

如果sql server 服务器不在本地,存储的是服务器数据。

在安装有SQLServer数据库的计算机上,我们在使用数据库的过程中,有时候会在任务管理器里发现sqlservrexe这个进程的内存和CPU占用率较高。

接下来我们来看一下,如何解决上面这个问题,需要设置SQLServer数据库的内存配置。登录数据库,这里使用的是SQLServer2008,右键点击最上方的服务器名,在d出的菜单中,点击属性

打开服务器属性窗口。默认显示的是第一项常规内容,点击第二项内存进行内存配置。

点击内存后,打开服务器内存选项配置界面。这里的使用AWE分配内存可以对内存进行扩展支持,我们要做的是更改下方的最大服务器内存。这个数值根据自己服务器内存大小来做适当设置。

个人建议设置本机内存的一半或稍微高一点,如机器内存为2G,那么我们这里填写1000。需要注意的是内存设置调小以后,在数据库执行较复杂SQL语句的时候,可能会比较慢,出现这种情况,我们再适当上调最大内存配置大小。

SQLSERVER数据库中数据存储:

一:存储文件类型

SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。

其中:数据文件是以8K(=8192Byte)的页面(Page)作为存储单元的。

而日志文件是以日志记录作为存储单元。本文只讨论数据文件的存储方式,不涉及到日志文件存储方式。

数据文件以页面做为存储单元存储数据,要理解数据文件的存储方式,必须了解SQLSERVER中定义的页面类型种类。

二:页面类型

SQLSERVER中页面类型有8种,具体每种类型的详细说明,见下图:

用户的数据一般存放在数据页面中,由上图可以看出,数据页包含数据行中除 text、ntext 和 image 数据外的所有数据,text、ntext 和 image 数据存储在单独的页中。那么在一个数据页面中,数据是如何存放,SQLSERVER又是根据什么来定位页面与页面上的数据呢。要回答这个问题,有必要先了解数据页面的具体结构。

三:数据页面结构

在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。数据页面结构如下图所示,下面将详细解释

其中:数据页面页首:96个字节,保存着页面的系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 以及该页面所属于哪个物理文件。

 数据区:对应于上图中所有数据行的总区域,存放真正的数据,是以Slot为单位。一个Slot就是对应于一条数据记录行,从0开始编号,以16进制反序保存,Slot0, Slot1。

  行偏移数组:用于记录该数据页面中每个Slot在数据页面所处的相对位置,便于定位和检索每个Slot在数据页面中的位置,数组中每个记录占两个字节。

四:存储分配单位:盘区(扩展 Extend)

虽然SQLSERVER中数据文件存储单位是页面(Page),但实际SQLSERVE并不是为页面为单位给数据分配空间,SQLSERVER默认的存储分配单位是盘区。这样做的主要原因是为了提高性能。为了避免频繁的读写IO,在表或其它对象分配存储空间,不是直接分配一个8K的页面,而是以一个盘区(Extend)为存储分配单位,一个盘区为8个页面(=8*8K=64K)。

但是这样做虽然减少了频繁的IO读写,提高的数据库性能,但却导致出一个新问题,那就是在存储那些只有少量数据,不足8K的对象,如果也是分配给一个盘区,就会存在存储空间上的浪费,降低了空间分配效率。

为解决上述问题,SQLSERVER提供了一种解决方案,定义了两种盘区类型,统一盘区和混合盘区。

其中:统一盘区只能存放同一个对象,该对象拥有这个盘区的所有页面

 混合盘区:由多个对象共同拥有该盘区。

在实际为对象分配存储盘区时,为了提高空间利用率,默认的情况下,如果一个对象一开始大小小于8个页面,就尽量放在混合盘区中,如果该对象大小增加到8个页面后,SQLSERVER会为这个对象重新分配一个统一盘区。

为了能够通过上述策略来实现为对象分配存储盘区,SQLSERVER提供了GAM/SGAM机制来管理和维护数据文件的盘区信息。

sql 命令保存在

我的文档下的SQL Server Management Studio文件下的Projects文件中

mdf和ndf保存在

C:\Program Files\Microsoft SQL Server\MSSQL2\MSSQL\DATA

目录下

1 如何直接在sql server中添加一条数据

添加数据需要知道往哪张表添加,以及自己要添加的内容,然后可用insert语句执行。

1、以sqlserver2008r2为例,登录SQL Server Management Studio到指定的数据库。

2、登录后点击逗新建查询地。

3、比如要往test表中插入数据,可先用如下语句查看一下表结构及表内数据:

select from test;

4、根据自己的实际情况添加输入,比如要添加一条逗16,du小小动地的数据。

insert into test (id,name) values (16,'du小小动');

执行成功后会有提示:

5、此时数据库中数据如下,说明添加成功。

2 sql如何加载数据库

SQL Server Management Studio中的对象资源管理器管理连接到Microsoft SQL Server数据库引擎实例,然后展开该实例。

右键单击数据库,指向“任务”,然后单击“附加”。

“附加数据库”对话框中指定要附加的数据库,单击“添加”,然后在“定位数据库文件”对话框中,选择数据库所在的磁盘驱动器,并展开目录树,以查找并选择数据库的。mdf文件,例如:

C:\ Program Files文件\微软SQL Server \ MSSQL1 \ MSSQL \ DATA \ AdventureWorks_Datamdf

重要: BR />

尽量选择附加的数据库将生成错误。

要指定一个不同的名称额外的数据库,附加数据库“对话框中输入一个名称”其他“一栏。

或其他项目的“所有者”列中,选择更改数据库所有者。

额外的数据库,请单击“OK”。

3 添加时怎样实现多条数据添加进数据库

还是要看你的需求实现,这里只在最终数据库执行说明下:

1如果数据可以直接从数据库提取,建议使用insert into 。select。

2如果语句是无关的,可以直接拼接一并提交数据库执行,要注意语句分割符,例如

SQL SERVER 是;,oracle是/

insert into table1 values (。);

insert into table1 values (。);

insert into table1 values (。);

4 如何将数据库文件附加到SQL Server上

将数据库文件附加到SQL Server上的方法如下:百

1、把需要附加的数据库文件拷贝到自己想存储的目录下,然后单击“数据库”,附加

2、点击添加,选择路径,单击确定,即可完成附加。

3、在数据库界面就可以看到被附加的数据库了

4、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件度(MDF)和对应的日志文件(LDF)完好无损。分离成功后,我们就可以把该数据库文件(MDF)和对应的日志文件(LDF)拷贝到其它磁盘中作为备份保存。

5、(以Transino_ZHBB为例子)

6、打开属性窗口,在回属性窗口中选择选项,然后找到状态,把限制访问改成“SIGN_USER”

7、单机确定之后,显示如下窗口

8、单击Transino_ZHBB,选择任务下的子菜单分离

9、如果消息栏为空,则选择“就答绪”,否则“未就绪”,同时选择删除连接,更新统计信息

5 sql语句的插入和添加

学生表就暂定为复student表,学院表为college表

select sstuid,sstuno,sstuname,ccollegename from student s join college c where scollegeid=ccollegeid

这条语句制查百出来的数据就是只有度stuid,studno ,stuname ,collegename这四项,你在代码里面执行知绑定的语句时将上面那句放进去就行,道希望能帮到你。

rivate void button2_Click_1(object sender, SystemEventArgs e)

{

string pathName;

if (thisopenFileDialog1ShowDialog()==SystemWindowsFormsDialogResultOK)

{

pathName = thisopenFileDialog1FileName;

SystemDrawingImage img = SystemDrawingImageFromFile(pathName);

thispictureBox1Image = img;

//将图像读入到字节数组

SystemIOFileStream fs = new SystemIOFileStream(pathName,SystemIOFileModeOpen,SystemIOFileAccessRead);

byte[] buffByte = new byte[fsLength];

fsRead(buffByte,0,(int)fsLength);

fsClose();

fs = null;

//建立Command命令

string comm = @"Insert into table1(img,name) values(@img,@name)";

thissqlCommand1 = new SystemDataSqlClientSqlCommand ();

thissqlCommand1CommandType = SystemDataCommandTypeText ;

thissqlCommand1CommandText = comm;

thissqlCommand1Connection = thissqlConnection1 ;

//创建Parameter

thissqlCommand1ParametersAdd("@img",SystemDataSqlDbTypeImage);

thissqlCommand1Parameters[0]Value = url地址

thissqlCommand1ParametersAdd("@name",SystemDataSqlDbTypeVarChar);

thissqlCommand1Parameters[1]Value =

(pathNameLastIndexOf("\\")+1);

try

{

thissqlConnection1Open();

thissqlCommand1ExecuteNonQuery();

thissqlConnection1Close();

}

catch(SystemException ee)

{

MessageBoxShow(eeMessage );

}

buffByte = null;

thisFillListBox();

}

以上就是关于请问SQL SERVER服务器的存储数据库是本机还是远程服务器 请高手解答。全部的内容,包括:请问SQL SERVER服务器的存储数据库是本机还是远程服务器 请高手解答。、sql server 怎么实现数据的存储、SQL数据库中都是以表的形式存储数据的吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9685278.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存