ASP.NET 在 Windows Azure 环境中动用基于 SQLServer 的 Session

写在前头的话:此前做的3个体系,数据库及系统完整构架设计完毕之后,和兄弟们通过
一段时间的编码,系统如期上线,刚初阶运营一切能够,后来趁着数据量的烈性膨胀,逐步出现了众多莫名其妙的标题,经过调节和测试,修改了数据库中多少个存款和储蓄进程的
一些题材。有意思的是,有三个储存进程里,为了落到实处四个小的效果,写了很多过多的代码,又是游标又是循环的,其实用系统的一个暗中认可函数就能缓解掉。那里想
说的是,学习工作之余,在并未要化解难点的压力之下,依旧提议系统的看看书,对于有个别以为没啥用的知识点,也提议去仔细的看看,练练手,说不定曾几何时就用到了,到时也好有针对的去查,不至于盲指标遵照自身的思绪,重复的创导一些不算的缓解方法。

Session 嘛,占少数服务器财富,可是终究比 ViewState 和 Cookie
安全点儿,所以如故要用的。

采纳sql数据库的源码http://www.jinhusns.com/Products/Download/?type=xcj

Windows Azure 环境中的 Web
服务器经由负载均衡调度,根本不能够保证下二次拍卖请求的依旧不是上贰次的那台服务器,所以,直接动用内部存储器的
In-Process Session 就无法用了。

======正文起首===========

图片 1

1.[]的使用

这便是说怎么做吧?

  当大家所要查的表是系统首要字仍旧表名中隐含空格时,必要用[]括起来,例如新建了七个表,分别为user,user
info,那么select * from user和select * from user
info就要报错,需求写成:select * from [user] 和 select * from [user
info],而是千万不要因为有[]的鼎力相助,就轻易起名了,那是自作自受麻烦,然而笔者实在看到有人把用户表起名为user的。

 

2.NULLIF函数

安不忘虞方案

ASP.NET State Service

专程用一台服务器来保管 Session。那么些方案 On-Premis 方案里面能够用,Azure
的条件中还并未任何可用的一望可知,跳过。

 

Table Storage

一向用 Azure 里面包车型客车蕴藏服务来给你保存
Session。存款和储蓄服务好福利,最高级的“读取访问地域冗余存款和储蓄(RA-G牧马人S)”对表和队列的报价是 $0.12  1T/月。不过,难点正是慢。所以,跳过。

 

Azure Caching

内部存款和储蓄器的缓存服务,速度最快、也最贵。最大的题材是,中夏族民共和国的 Azure
近日还不帮衬(但云服务提供 In Role Caching)。无奈跳过。

 

SQL Azure

速度介于 Table Storage 和 Azure Caching
之间,木有官方匡助,不过可用。无奈咬牙就用那些了。

 

  NULLIF(Expression1,Expression2):给定四个参数Expression1和Expression2,假若五个参数相等,则赶回NULL;不然就赶回第一个参数。

操作步骤

事实上挺不难的,分七个步骤:

  1. 树立1个 SQL Azure 数据库
  2. 在这一个新的空数据库上边跑3个本子,把所需的表和存款和储蓄过程都建立起来
  3. 配置 ASP.NET Web 应用的 Web.Config 文件

 

首先,登录 Windows Azure 控制台,创制1个空的数据库。那里给它起名
ASPState。就算您追寻过英文材料,那么你意识有人(小说)会让您运转一段 SQL
脚本成立这几个数据库。从使用的角度看,效果是一致的,不过,那一个本子成立的数据库,是不会产出在
Azure 控制台的数据库列表里面包车型客车。所以,仍旧应当一直在 Azure
控制台里面建立这些数据库。

图片 2

 

然后,下载本文末尾提供的文本链接,解压后获取 SQL 文件,用 SQL Server
Management Studio 打开 Azure 数据库 ASPState
后,运转此脚本即可成功第一步。那个本子不是自笔者写的,是从
其一地方
下载的。然而原始的下载包是带有创设数据库脚本的,基于上边的来头,作者给去掉了,防止引起混乱;同时,也起到各地备份的效劳。

打开 ASPState 数据库以及配置 Web.Config 必要接二连三字符串的参数,能够在
Azure 的数据库面板上边找到,点击“查看 ADO .NET …. 连接字符串”正是:

图片 3

用 SQL Server Management Studio 连接 Azure
数据库的进程中,你或然会收下贰个“IP
地址被防火墙拦截”的一无所能消息。没关系,切换成 Azure
控制台的数据库管理界面,打开下边包车型地铁连接字符串对话框,你会看出 Azure
会提醒您是还是不是供给允许那些 IP 地址访问数据库,只要求点击提醒,将 IP
地址参预允许的走访列表中保存即可。

 

终极,在您的 Web.Config 的 System.Web 节中添加上面包车型大巴始末即可(用 %
引用的内容须求依据你的实际上情况替换):

图片 4

 

好了,上边就足以起来用 Session 了。

 

附件:下载
配置 ASPState 数据库的剧本文件 (zip 格式)。

尤其表明:SQLServer 的 Session 供给手动调用 DeleteExpiredSessions存款和储蓄进度(假如您运转方面包车型大巴 SQL
脚本,这么些蕴藏进程是会给你创建好的),因为 SQL Azure 不提供 Agent
服务,所以要手动调用可能用 Azure
提供的“布署调用”服务等招数。这些调用的时机不比,要整合本身使用的骨子里来铺排,那篇短文中就不开始展览讲太多了。

 

  等价于:Case WHEN Expression1=Expression2 Then NULL ELSE
Expression1。

  例如Select NULLIF(1,1)返回NULL,Select NULLIF(1,2)返回1。

  有一个实际上的选取,例如提防除0操作的放生,能够使用a/NULLIF(b,0),那样就不怕b是0了,当然除0操作也足以透过其他艺术判断。

3.NULL

  NULL是个神奇的事物,表示空值,未知值,任何数与它加减乘除都回到NULL。

4.ISNULL函数

  ISNULL(Expression1,Expression2):给定多个参数Expression1和Expression2,假使Expression1是NULL,那么再次回到Expression2,否则重临Expression1。

  等价于:Case WHEN Expression1 is NULL Then Expression2 ELSE
Expression1。

  例如Select ISNULL(NULL,1)返回1,Select ISNULL(1,2)返回1。

  有多少个其实的使用,能够对空值进行暗中认可值替代,例如SELECT
ISNULL(email,’没有填写email’) from
table1,全体email为null的,用’没有填写email’来顶替。

 5.COALESCE函数

  COALESCE(Expression1,Expression2,Expression3,……):接受一层层的表明式或列,重返第一个非空的值。

      例如SELECT
COALESCE(NULL,NULL,4,NULL,NULL,5),那么再次回到4,若是中间的参数都为NULL,那么会报错。

6.WITH TIES

  与top()和order by 一起用,能够回到多于top的行。幸免丢失想要的音讯。

  例如:有个表table1

(1)select * from table1 order by name desc :结果如下:

图片 5

(2)select top(3) * from table1 order by name
desc:结果如下:(唯有三条)

图片 6

(3)select top(3) with ties * from table1 order by name
desc:结果如下:

图片 7

7.O奥迪Q3DE汉兰达 BY NEWID():重返随机排序结果。

8.BETWEEN a AND
b:返回超越等于a,稍差于等于b的结果。假使a>b,那么重临NULL。

9.毫不在where条件中利用函数,会强制每一行都盘算该函数,无法使用索引查找。

  例如:select * from table1 where id+3>5和select * from table1
where id>5-3,后者功效比前者高。

10.许多以_desc结尾的列,是为着更友好的象征1个列的意义。

  例如:SELECT * FROM sys.databases

图片 8

11.推荐几个小插件,SQL
Prompt,合营Microsoft SQL Server Management
Studio,使用起来拾分便利,同时再添加以下多少个飞快键:

  (1)ctrl+5或F5,运维代码,假诺想运营特定的言辞,那么只是选中该语句,然后F5或ctrl+E即可。

  (2)ctrl+L:展现执行布署。

  (3)ctrl+凯雷德:突显隐藏下边包车型地铁结果窗口,增大本身书写sql的空中。

  (4)ctrl+K,然后按Y,格式化SQL代码。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图