《Asp.Net 2.0 揭秘》读书笔记(十六)
创建数据访问组件
*SystemDataSqlServerCe:SQL SERVER MOBILE EDITION;
*在获取数据的时候建议使用DataReader
*SQL 延迟函数:WAITFOR DELAY ‘0:0:03’;
*记得一本书里说过一个函数执行的过程一般小于一纳秒;
*使用sqlconnection默认是代开连接缓冲池的,默认的大小是100;
*conn.close():不是真的销毁连接而是放回到连接池中;
*列出当前所有连接到该数据库的用户连接
SQL CODE:SELECT * FROMmaster ..sysprocesses WHERE hostname<>''
*DataReader使用的时候当读取输出参数时得先关闭reader再读取,不然会出现错误,因为reader在读取的时候会自动关闭;
*数据库技术的存取效率(msdn文章):Performance Comparison:DataAccess Techniques;
*使用CommandBehavior.CloseConnection的最大缺点是阻碍使用者添加任何异常代码;
*在一条命令中执行多条命令可以提高效率,减少数据库连接;
*reader[“ColumName”]:获取此列的值返回obj类型
*当command返回多个结果集时通过NextResult()到下个结果集;
*MARS:Multiple Active Resultsets,多活动结果集;
*上面那个东西就是对一个连接对象绑定多个Command对象,同时使用,但是必须对连接字符串中包含“MultipleActiveResultSets=True”;
*每个请求asp.net都会分配线程池中的一个新的线程用来执行,如果线程池中没有线程可用就会将新的请求放入队列中,如果队列太大服务器对新的请求就会返回503错误,表示服务器太忙;使用异步的数据层的时候可以对请求性能有所提升,因为当请求未返回的时候当前线程会先释放回请求线程池,数据取出后再申请新的线程继续当前的请求;
*可以使用Web配置文件(Web.config)中的HttpRuntime节点来配置Asp.net程序的线程池。通过修改appRequestQueueLimit、minLocalRequestFreeThreads和minFreeThreads属性,控制在asp.net framework的队列放弃和输出错误信息签可以处理多少请求。
*使用异步的Ado.net的方法时,连接字符串必须添加AsynchronousProcessing=true,来启用数据库的异步功能;
*对请求的页面设置异步才能实现上面的性能提升(
<%@ Page Async="true" AsyncTimeout="8"%>
)
*具体的例子 Page 576;
*executeInParallel:是并发执行还是并行执行,两者的区别是在微观上并行也是同时执行;
*替代Page.RegisterAsyncTask():AddOnPreRenderCompleteAsync();
*启用CLR(通用语言运行时)集成
数据库命令(查询分析器):
sp_configure ‘clr enabled’ ,1
RECONFIGURE
无视出现的警告
*使用SQL SERVER数据库对象 Page 578;
*注册或者注销程序集和用户自定义类型:
CREATE ASSEMBLEY DBMovie FROM ‘C:\DBMovie.dll’
DROP Assembly DBMovie
SELECT * FROM sys.assembles \\查看当前数据库的所有程序集;
CREATE TYPE dbo.DBMovie EXTERNAL NAME DBMmovie.DBMovie
DROP TYPE DBMovie
同理可以自定义创建存数过程
真的很强大,不过暂时不知道这样用的好处,还需要时间的提炼啊