SQL Server 2005中的CLR(2)
文章导航 SQL Server 2005 学习笔记系列文章导航
这一节咱们来说说ClR的性能,我们不能只使用它而不去考虑到低 为什么要使用它或是在什么时候应该使用它,像我之前写的函数得到一个字符的长度的方法就没有太大必要了,但如果是像拆分字符这样的方法应该就有必要了,比如c#里的Split ()方法,在Sql里就没有这样的函数这个时候 我们就可以使用Clr来完成了,
其实实现 的方法是跟上一节SQL Server 2005中的CLR(1) 里的没有任何分别只是把函数的代码换成下面的代码就可以了
代码
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class UserDefinedFunctions
{
//表示注册为Sql中的函数
[Microsoft.SqlServer.Server.SqlFunction]
public static string sqlSplit(string str, int x)
{
// 返回字符串的长度
return str.Split(',')[x].ToString ().Trim();
}
};
这里是简单的实现,大家可以根据自己的需要来实现
说到他的性能我们先来和T-SQl语言比较一下吧
1.编程模型
T-Sql
过程代码内部嵌入查询语言
意思就是说,在T-Sql里我们一般是把查询语句写在存储过程里的,这样的效率很高,因为它是直接访问数据库,但是如果出现不同数据库间的移植就很不方便了
CLR
intp-proc ado.net数据访问(这里要导航一个using System.Data.SqlClient;)
注: 相比T-Sql肯定是在执行效率上有些不足了,因为它毕竟是经过一层的封装的,而最后还是通过Ado来执行T-SQl语句,但也不是完全没有用武之地
容易在各层之间移动代码和利用现有技术
 
相关文档:
首先配置SQLSERVER2005:
打开”Microsoft SQL Server Management Studio“ 直接用Windows 用户连接进入,再在“安全性”中的“登录名”内的“新建登录名”,你就对应的添好“确定”就可以了。
再在你对应的“数据库”里“安全性” ......
例子: int id = Convert.ToInt32(replace((Request.QueryString["id"]), ""));
public static string replace(string str, string str2)
{
str = str.Replace(";", str2);
str = ......
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
......
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE data ......
Sql Server 查询sql执行各个阶段的时间
set statistics io on
set statistics time on
set statistics profile on
go
[你的sql语句]
go
set statistics io off
set statistics time off
set statistics profile off
我运行:
set statistics io on
set statistics time on
set statistics profile on ......