仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 854|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页设计数据库初级使用

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功初级|数据|数据库
1、毗连池

1、特性:

①、长处:功能

②、弱点:大概存在多个没有被利用的毗连,资本华侈

2、ADO.NET毗连池

①包括在ADO.NET中的每一个.NET数据供应程序都可完成毗连池。

②每一个毗连池都与一个自力的毗连字符串及其事件高低文联系关系。每次翻开一个新的毗连,数据供应者会实验将指定的毗连字符串与毗连池的字符串举行婚配。假如失利,则创立新毗连并到场毗连池。

③毗连池创立以后,体系会创立一些毗连工具并将它们到场毗连池,直至到达额外的最小毗连工具数目。今后依据必要创立新的毗连,直抵达到最年夜毗连数目。

④.NET默许是利用毗连池。假如想禁用,则可使用以下体例:

Ⅰ、利用SqlConnection工具时,在毗连字符串到场:Pooling=false

Ⅱ、利用OleDBConnection工具时,在毗连字符串到场:OLEDBServices=-4

3、提醒和技能

①翻开毗连应迟,封闭毗连应早

②在封闭数据库毗连前确保封闭了一切用户界说的事件

③最少包管毗连池中有一个毗连可用

2、缓存

1、特性

①、长处:进步功能,不乱性,可用性

②、ASP.NET缓存

Ⅰ、在ASP.NET中,供应了专门用于缓存数据的Cache工具,它的使用局限是使用程序域。保存期是和使用程序严密相干的,每当使用程序启动的时分就从头创立Cache工具,每当使用程序启动的时分就从头创立Cache工具。它与Application工具的次要区分就是供应了专门用于缓存办理的功能,好比依附和过时战略。

Ⅱ、Cache工具界说在System.Web.Caching定名空间,可使用HttpContext类的Cache属性或Page工具的Cache属性来失掉Cache的援用,Cache工具除存储键值之外,还能够存储.NET框架的工具。

2、依附和过时战略

①文件战略:当硬盘上的某个(某些)文件变动时,强迫移除缓存数据

CacheDependencycDependency=newCacheDependency(Server.MapPath(“authors.xml”));

Cache.Insert(“CachedItem”,item,cDependency);

②键值依附:指定缓存中的某个数据项变动时移除。

//Createacacheentry

Cache[“key1”]=“Value1”;

//Makekey2dependentonkey1

String[]dependencyKey=newString[1];

dependencyKey[0]=“Key1”;

CacheDependencydependency=newCacheDependency(null,dependencyKey);

Cache.Insert(“key2”,“Value2”,dependency);

③基于工夫的过时战略:相对和绝对

//Absoluteexpiration

Cache.Insert(“CachedItem”,item,null,DateTime.Now,AddSeconds(5),Cache.NoSlidingExpiration);

//Slidingexpiration

Cache.Insert(“”,item,null,Cache.NoAbsoluteExpiration,TimeSpan.FromSeconds(5));

④数据库依附(倡议不要利用):数据库中相干的数据产生变更,则缓存生效

3、利用缓存:因为数据会过时,利用缓存时必需反省数据的无效性

stringdata=(string)Cache[“MyItem”];

if(data==null)

{

data=GetData();

Cache.Insert(“MyItem”,data);

}

4、缓存回调:当缓存生效时,主动挪用

CacheItemRemoveCallbackonRemove=newCacheItemRemovedCallack(this.RemoveCallback);

Cache.Insert(“CachedItem”,item,null,Cache.NoAbsoluteExpiration,Cache.NoSlidingExpiration,CacheItemPriority.Default,onRemove);

//Implementthefunctiontohandletheexpirationofthecache.

publicvoidRemovedCallback(stringkey,obejctvalue,CacheItemRemonvedReasonr)

{

//Testwhethertheitemisexpiredandreinsertitintothecache.

if(r==CacheItemRemovedReason.Expired)

{

//Reinsertitintothecacheagain.

CacheItemRemovedCallbackonRemove==null;

onRemove=newCacheItemRemoveCallback(this.RemovedCallback);

Cache.Insert(key,value,null,Cache.NoAbsoluteExpiration,Cache.NoSlidingExpiration,CacheItemPriority.Default,onRemove);

}

}

5、缓存优先级:当运转使用程序服务器的内存不敷时,会主动分明缓存中的数据,称为“扫除scavenging”

Cache.Insert(“DSN”,connectionString,null,d,t,CacheItemPriority.High,onRemove);

6、在非Web项目中利用ASP.NET缓存

HttpRuntime.Cache工具能够在Aspnet_wp.exe以外的每一个使用程序域中存在。

HttpRuntimehttpRT=newHttpRuntime();

Cachecache=HttpRuntime.Cache;

3、事件

1、间接写进到sql中:在存储过程当中利用BeginTrans,CommitTrans,RollBackTrans完成。

BeginTrans

Declare@orderDetailsErrorint,@productErrorint

Deletefrom"OrderDetails"whereProductID=42

Select@orderDetailsError=@@Error

DeletefromProductswhereProductID=42

Select@productError=@@Error

if@orderDetailsError=0and@productError=0

CommitTrans

else

RollBackTrans

长处:一切的事件逻辑包括在一个独自的挪用中

具有运转一个事件的最好功能

自力于使用程序

限定:事件高低文仅存在于数据库挪用中

数据库代码与数据库体系有关

2、利用ADO.NET完成:能够在两头层来办理事件。SqlConnection和OleDBConnection工具有一个BeginTransaction办法,能够前往SqlTransaction或OleDbTransaction工具。

cn.Open();

SqlTransactiontrans=cn.BeginTransaction();

SqlCommandcmd=newSqlCommand();

try

{

cmd.CommandText="Delete[OrderDetails]whereProductID=23";

cmd.ExecuteNonQuery();

cmd.CommandText="DeleteProductswhereProductID=23";

cmd.ExecuteNonQuery();

Trans.Commit();

}

Catch(Exceptione)

trans.Rollback();

Finally

cn.Close();

长处:复杂性;和数据库事件差未几的快;自力于数据库

弱点:事件不克不及超过多个数据库毗连;

事件实行在数据库毗连层上,以是必要在事件过程当中保护一个数据库毗连;

4、散布式事件

1、特性:

要介入COM+事件,.NET类必需是从System.EnterpriseServices.ServicedComponent类承继。

经由过程利用System.EnterpriseServices.ContextUtil类能够猎取有关COM+工具高低文信息,它供应SetComplete和SetAbort办法,以便分离显现提交和回滚事件。

长处:在必要事件跨MSMQ和其他可辨认事件的资本运转体系中,只能利用DTC或COM+事件。DTC和谐介入散布式事件的一切资本办理器,也办理与事件相干的操纵。

弱点:因为存在DTC和COM相互操纵性开支,招致功能下降。

2、事件范例:

①、主动事件:利用System.EnterpriseServices.AutoComplete属性

[Transaction(TransactionOption.Required)]

publicclassClass1:ServicedComponent

{

[AutoComplete]

publicvoidExample()

{}

}

②、手动事件

publicstringTransferMoneyFromBToA(doublem)

{

try

{

ContextUtil.EnableCommit();

this.TransferOutFromB(m);

this.TransferInToA(m);

ContextUtil.SetComplete();

}

catch(Exceptionerr)

{

ContextUtil.SetAbort();

}

}

3、体例选择

关于上面的情形,需利用手工事件处置:对单个数据库实行事件处置;

关于上面的情形,则宜利用主动事件处置:

①、必要将单个事件处置扩大到多个远程数据库时;

②、必要单个事件处置具有多个资本办理器(如数据库和Windows2000动静行列资本办理器)时;

注重:制止混用事件处置模子,最好只利用个中一个。
“数据行级锁定”的意思是指在事务操作的执行过程中锁定正在被处理的个别记录,不让其他用户进行访问。这种锁定将影响到(但不限于)SELECT、LOCKINSHAREMODE、SELECT、FORUPDATE命令以及INSERT、UPDATE和DELETE命令。
变相怪杰 该用户已被删除
沙发
发表于 2015-1-19 08:42:18 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
只想知道 该用户已被删除
板凳
发表于 2015-1-24 11:27:38 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
兰色精灵 该用户已被删除
地板
发表于 2015-2-1 09:35:01 | 只看该作者
两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书
深爱那片海 该用户已被删除
5#
发表于 2015-2-7 02:06:52 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
小妖女 该用户已被删除
6#
发表于 2015-2-19 15:44:35 | 只看该作者
总感觉自己还是不会SQL
莫相离 该用户已被删除
7#
发表于 2015-3-6 15:06:42 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
谁可相欹 该用户已被删除
8#
发表于 2015-3-13 03:07:09 | 只看该作者
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
小魔女 该用户已被删除
9#
发表于 2015-3-20 10:49:32 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表