《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

同理可以自定义创建存数过程

真的很强大,不过暂时不知道这样用的好处,还需要时间的提炼啊

作者:KKcat
    
个人博客:http://jinzhao.me/
    
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/jinzhao/p/1373696.html