SQL Server 2005与DB2 8.2对比分析
2007-05-15 09:29:28 来源:WEB开发网部署.NET逻辑到DB2
虽然将.NET托管代码装入DB2 UDB 8.2的流程与装入SQL Server 2005的流程很相似,但在数据库对象类型和存储位置以及安全和数据库管理流程方面还是有着一些差别。为了创建DB2中的CLR数据库对象,你得首先使用Visual Studio并采用某种.NET托管语言创建一个DLL,这个DLL文件需要拷贝到DB2安装路径专门的目录中去,或者在创建存储过程或者函数的时候提供这个DLL文件的完全路径。这个DLL实际上不是一个数据库对象,也没有被导入到数据库表中,相反,它只是一个操作系统中的文件。接着,这个DLL将出现在创建数据库对象(例如存储过程或者函数)的CREATE命令中。在技术演示部分中,你将会看到使用Visual Studio 2003能够自动完成创建DB2 CLR存储过程的整个流程。不过,创建用户定义函数则不一样,你只用通过手工来完成创建用户定义函数的流程。
一个数据库管理员或者是一个应用程序开发人员通常需要保护与DB2外部程序相关的DLL程序集,这可以通过限制程序运行时的操作来实现,这步工作在创建过程或函数时,在CREATE语句的EXECUTION CONTROL子句中完成。有效的执行控制模式包括:SAFE、FILEREAD、FILEWRITE、NETWORK和UNSAFE。如果没有指定执行控制模式,默认模式是SAFE,这将意味着这个CLR程序只能访问由数据库管理员控制的资源,这样的资源包括所有的表和由数据库实例管理的架构。FILEREAD、FILEWRITE和NETWORK执行模式允许托管代码访问本地文件系统或者是网络上的资源。UNSAFE执行模式将不会在资源访问上做任何限制,标记为UNSAFE执行模式的程序可以执行二进制代码。既然DB2与.NET的集成采用的是“进程外”的模型,那么在使用CREATE语句创建DB2 CLR过程和函数时必须采用FENCED子句,用以说明.NET逻辑和数据库管理器在不同的进程中运行并且不使用共享内存通讯。这就造成了在程序逻辑与数据库本身之间传输数据的时候,与“进程内”模型相比,有一个性能上的障碍。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接