10. 下面程序段的功能是:在数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向author_id、author_name和address字段插入数据。阅读并回答以下问题: USE bookdb GO IF EXISTS(SELECT______FROM Sysobjects WHERE name='my_proc'and type='P') DROPPROC my_proc GO CREATE PROC my_proc @a int,@b char(8),@c char(50)______ INSERT INTO author(author_id,author_name,address)VALUES(@a,@b,@c)GO
第一空:Name 第二空:as
[解析] 在数据库中判断是否存在名为my_proc的存储过程,即从系统表中查询有没有和my_proc同名的过程,用“SELECT name FROM Sysobjects”表示。其中Sysobjects为系统表,保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等。比较常用的字段为: Sysobjects( Name sysname,- -object名称 id int,- -object id xtype char(2),- -object类型 type char(2),- -object类型 uid smallint,- -object所有者的ID ) 创建存储过程的命令格式为: CREATE PROC my_proc @变量1,@变量2 AS{<sql_statement>[;][…n]}[;] <sql_statement>::={[BEGIN]statements[END]}
三、设计与应用题 某网上商城因为业务发展,原有的系统不能很好的满足需要,因此采用了一套新的经营管理系统,此系统使用SQL Server 2008数据库管理系统。此系统上线运行前,需将商场原有的数据导入到新系统中。原有系统使用SQL Server 2000,数据结构与新系统不完全一致。因此需要把数据从SQL Server 2000导入到SQL Server 2008中,为了保证数据一致性,数据导入过程中要求暂停业务且必须在3小时内完成。
第一种方案比较合理。原因:SQL Server 2008采用将数据缓冲在内存的方式,因此内存的使用率比较高是正常情况,且现阶段I/O并不存在问题,表明内存满足需求。此阶段CPU使用率很高,表明CPU计算资源不足,因此增加CPU数量对解决问题有效。
[解析] 提高数据库性能的方法一般是从外部环境、调整内存分配、调整磁盘I/O、调整竞争资源等几方面着手来改变数据库的参数。SQL Server 2008采用将数据缓冲在内存的方式,因此在数据库系统运行的过程中会占用一定的内存,又因为I/O并不存在问题,说明内存尚满足需求。CPU使用率很高,表明CPU的计算能力不足,应该增加CPU的数量。