摘要:
IEqualityComparer<T>接口的对象的主要作用在于自定义判断两个对象是否相等。 其中最常用的方法: bool Equals(T x, T y); 实现该方法用于比较两个对象是否相等。如果指定的对象相等,则为 true;否则为 false。 代码示例: class Program { s 阅读全文
posted @ 2015-05-31 20:12
Dynamics365峰
阅读(204)
评论(0)
推荐(0)
摘要:
1、Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果。 2、Select 操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中的元素类型相同,也可以不同。下面来看看Select方法的原型。 3、SelectMany 操作符用于 阅读全文
posted @ 2015-05-31 20:12
Dynamics365峰
阅读(380)
评论(1)
推荐(0)
摘要:
这篇文章决定对最近一个单机版Web程序用到的东西总结一下。 一、反射Linq之OrderBy 动态Linq结合反射对某字段排序: namespace 动态Linq { class Program { static void Main(string[] args) { List<Person> Lis 阅读全文
posted @ 2015-05-31 20:11
Dynamics365峰
阅读(320)
评论(0)
推荐(0)
摘要:
一、LINQ to XML常用成员 LINQ to XML的成员, 属性列表: 属性 说明 Document 获取此 XObject 的 XDocument EmptySequence 获取空的元素集合 FirstAttribute 获取此元素的第一个属性 FirstNode 获取此节点的第一个子节 阅读全文
posted @ 2015-05-31 20:11
Dynamics365峰
阅读(188)
评论(0)
推荐(0)
摘要:
IComparer<T>比较两个对象并返回一个值,指示一个对象是小于、等于还是大于另一个对象。 在Linq当中,很多扩展方法接受一个实现IComparer<T>接口的实例的对象作为参数,因此想明白Linq中很多个方法的IComparer<TKey> comparer参数的意义,首先要对此接口有个认识 阅读全文
posted @ 2015-05-31 20:11
Dynamics365峰
阅读(328)
评论(0)
推荐(0)
摘要:
非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用。 1、ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组。 方法原型: public static TSource[] ToArray<TSource>(this IEn 阅读全文
posted @ 2015-05-31 20:11
Dynamics365峰
阅读(217)
评论(0)
推荐(0)
摘要:
一、一个字符串,一个字符串数组。判断字符串数组里的元素出现在字符串中的有几个。 class Program { static void Main(string[] args) { string str = "你在他乡还好吗?"; string[] WordList = new string[] {" 阅读全文
posted @ 2015-05-31 20:11
Dynamics365峰
阅读(120)
评论(0)
推荐(0)
摘要:
WebClient类提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。 其实就相当于创建一个请求客户端。可以获取网页和各种各样的信息,包括交互。 通过MSDN来看看WebClient类提供的功能。 一、属性 1、BaseAddress 获取或设置 WebClient 发出 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(776)
评论(0)
推荐(0)
摘要:
最近在学HttpRequest类搞文件上传的时候看到Request.Files返回了HttpFileCollection 这个类的一个对象,这个类用于获取浏览器上传的文件集合,在文件上传的时候可以通过这个集中获取上传的文件内容,文件名等信息。以下来详细了解一下这个类。 以下给出常用属性与公用方法。 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(1064)
评论(0)
推荐(0)
摘要:
在研究HttpRequest的时候,搞文件上传的时候,经常碰到返回HttpPostedFile对象的情况,这个对象才是真正包含文件内容的东西。 经常要获取的最重要的内容是FileName属性与SavaAs方法,现在我们来详细看看这个东西。 一、常用属性 ContentLength: 获取上载文件的大 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(556)
评论(0)
推荐(0)
摘要:
一、最近在研究HttpRequest类的时候,发现返回的cookie集合是存在放这个类的对象的。而实际上这个类只是一个HttpCookie对象的集合,关于HttpCookie类可以查看http://www.cnblogs.com/kissdodog/archive/2013/01/08/285193 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(649)
评论(0)
推荐(0)
摘要:
在Asp.net WebForm中,Server对象是HttpServerUtility类的实例。看下图: 而在Asp.net MVC中,Server对象是HttpServerUtilityBase对象。 来看下HttpServerUtility类提供的功能。顺便以一个ashx页面来展示一下该类的作 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(1004)
评论(0)
推荐(0)
摘要:
最近在研究HttpRequest类,发现里面的很多属性都返回一个NameValueCollection对象,今天再来了解一下这个神秘的对象。 随便写了个例子,发现跟HashTable类似。但是这个东西有点怪,就是当存在一个key的时候,你在add的话,会追加进当前key中。而不是简单替换。 Name 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(188)
评论(0)
推荐(0)
摘要:
HttpCookie类专门由C#用于读取和写入Cookie的类。 Cookie的详细说明见:http://www.cnblogs.com/kissdodog/archive/2013/01/02/2842387.html jQuery处理Cookie见:http://www.cnblogs.com/ 阅读全文
posted @ 2015-05-31 20:10
Dynamics365峰
阅读(431)
评论(0)
推荐(0)
摘要:
System.IO.Path为路径的操作封装了很多很有的东西,利用该类提供的方法能够快速处理路径操作的问题。下面详细了解一下。 1、属性 属性太复杂了,反映什么系统平台的信息,看不懂,等以后看得懂了再补充。 2、方法 ChangeExtension 更改路径字符串的扩展名。 Combine 合并两个 阅读全文
posted @ 2015-05-31 20:09
Dynamics365峰
阅读(281)
评论(0)
推荐(0)
摘要:
File是一个静态类,常用于文件操作,读取,修改文件等等。File类的大部分方法最终都是转换为流(Stream)的操作,只不过是.net提取帮你封装好了这些常用的流。并且会自动清理占用的资源。 例如:下面通过反编译来了解下一个File里的一个普通的方法ReadAllText()的源代码: [Secu 阅读全文
posted @ 2015-05-31 20:09
Dynamics365峰
阅读(380)
评论(0)
推荐(0)
摘要:
FileAttributes枚举是一个专门用于标记硬盘上的文件属性的枚举,枚举的说明在这里:http://www.cnblogs.com/kissdodog/archive/2013/01/16/2863515.html 源代码附在最下面。最源代码看来,我们可以得出的信息,这是一个标志枚举。此Fil 阅读全文
posted @ 2015-05-31 20:09
Dynamics365峰
阅读(1276)
评论(0)
推荐(0)
摘要:
1、Application与Session的区别 Application对象:实现程序级别的数据共享。 Session对象:实现会话级别的数据共享。 当需要整个程序级别的共享信息时,可以使用Application对象。例如需要设计一个计数器来统计访问系统的所有人数,或者在程序开始和结束时记录时间等。 阅读全文
posted @ 2015-05-31 20:09
Dynamics365峰
阅读(546)
评论(0)
推荐(0)
摘要:
一、会话状态Session Session用于服务器端状态管理,使用Session之后,每个客户端都可以将实际的数据保存在服务器上,对于每个客户端的数据,将会生成一个对应的唯一的key(保存在客户端)。客户端与服务器端就是通过这个key来确认客户端的身份,通常这个key为SessionID。 一般情 阅读全文
posted @ 2015-05-31 20:09
Dynamics365峰
阅读(620)
评论(0)
推荐(0)
摘要:
FileMode枚举是一个简单枚举,用于指定操作系统打开文件的方式。 枚举成员 成员值 描述 CreateNew 1 指定操作系统应创建新文件,如果文件存在则引发异常。 Create 2 指定操作系统创建新文件,如果文件已存在则覆盖之。 OPen 3 指定 操作系统应打开现有文件,如果文件不存在则抛 阅读全文
posted @ 2015-05-31 20:08
Dynamics365峰
阅读(585)
评论(0)
推荐(1)
摘要:
FileAccess用于控制对文件的读访问、写访问或读/写访问的常熟。从源代码可以看到FileAccess是一个简单枚举。 枚举成员 成员值 描述 Read 1 对文件的读访问,拥有读取权限。 Write 2 对文件的写访问,拥有写入权限。 ReadWrite 3 对文件的读访问和写访问,拥有读取和 阅读全文
posted @ 2015-05-31 20:08
Dynamics365峰
阅读(310)
评论(0)
推荐(0)
摘要:
MemoryStream 是一个特例,MemoryStream中没有任何非托管资源,所以它的Dispose不调用也没关系。托管资源.Net会自动回收 MemoryStream继承自Stream类。内存流的好处是指针可以晃来晃去,也就是支CanSeek,Position,Seek()。任意读其中一段。 阅读全文
posted @ 2015-05-31 20:08
Dynamics365峰
阅读(355)
评论(0)
推荐(0)
摘要:
如果要在压缩过程中检查错误或要与其他操作系统所用程序共享压缩数据,则要是用GZipStream类。GZipStream类包含是用GZip数据格式进行压缩和解压缩文件的方法,该类不能用于解压缩大于4GB的文件。 一、属性 BaseStream 获取对基础流的引用。 CanRead 获取一个值,该值指示 阅读全文
posted @ 2015-05-31 20:08
Dynamics365峰
阅读(512)
评论(0)
推荐(0)
摘要:
BufferedStream常用于对其他流的一个封装,它必须和其他流结合一起使用。MemoryStream将所有的内容都放入内存中,而BufferedStream不是。BufferedStream在基础流写入内存中能够提高读取与写入速度。但是缓冲区设置的大小对性能也有影响,默认值是4096字节,并能 阅读全文
posted @ 2015-05-31 20:06
Dynamics365峰
阅读(426)
评论(0)
推荐(0)
摘要:
DeflateStream是另外一种压缩与解压缩流,使用方法与GZipStream类似,而且压缩之后的带下也差不多。 一、属性 BaseStream 获取对基础流的引用。 CanRead 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 (重写 Stream..::.CanRead。) 阅读全文
posted @ 2015-05-31 20:06
Dynamics365峰
阅读(366)
评论(0)
推荐(0)
摘要:
StreamReader实现了抽象基类TextReader类,而StreamWriter实现了抽象基类TextWriter。分别用于对流的读取与写入。 先从StreamReader说起 一、构造方法 StreamReader(Stream) 为指定的流初始化 StreamReader 类的新实例。 阅读全文
posted @ 2015-05-31 20:06
Dynamics365峰
阅读(346)
评论(0)
推荐(1)
摘要:
MySQL数据库提供了很多函数包括: 数学函数; 字符串函数; 日期和时间函数; 条件判断函数; 系统信息函数; 加密函数; 格式化函数; 一、数学函数 数学函数主要用于处理数字,包括整型、浮点数等。 函数 作用 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x 阅读全文
posted @ 2015-05-31 20:06
Dynamics365峰
阅读(240)
评论(0)
推荐(0)
摘要:
使用FileStream能够对对系统上的文件进行读、写、打开、关闭等操作。并对其他与文件相关的操作系统提供句柄操作,如管道,标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream对输入输出进行缓冲,从而提高性能。 FileStream 对象支持使用 Seek 方法对文件进行随机访 阅读全文
posted @ 2015-05-31 20:00
Dynamics365峰
阅读(552)
评论(0)
推荐(0)
摘要:
一、简介 在Asp.net MVC实现的Comet推送的原理很简单。 服务器端:接收到服务器发送的AJAX请求,服务器端并不返回,而是将其Hold住,待到有东西要通知客户端时,才将这个请求返回。 客户端:请求异步Action,当接收到一个返回时,立即又再发送一个。 缺点:会长期占用一个Asp.net 阅读全文
posted @ 2015-05-31 17:29
Dynamics365峰
阅读(256)
评论(0)
推荐(0)
摘要:
一、路由 1、HttpApplication中的ASP.NET MVC .Net 3.5 引入了System.Web.Routing程序集,通过Url Routing的机制,可以实现将一个虚拟路径的请求映射到一个Action方法上。 在Asp.net MVC中,Route类指定Asp.net应用程序 阅读全文
posted @ 2015-05-31 17:28
Dynamics365峰
阅读(246)
评论(0)
推荐(0)
摘要:
一、MVC部署后直接显示文件列表,路由未生效,效果如下: 处理方法为:Web.Config修改一下配置: <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManag 阅读全文
posted @ 2015-05-31 17:27
Dynamics365峰
阅读(151)
评论(0)
推荐(0)
摘要:
一、系统过滤器使用说明 1、OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以很长,但实际上当系统资源紧张时,缓存空间还是会被系统收回。 VaryByPa 阅读全文
posted @ 2015-05-31 17:26
Dynamics365峰
阅读(177)
评论(0)
推荐(0)
摘要:
一、路由规则说明 先来看MVC中的默认路由的说明 "{controller}/{action}/{id}", // URL with parameters 对于Url /Home/Index/1 匹配结果是: controller : "Home" action : "Index" Id : "1" 阅读全文
posted @ 2015-05-31 17:24
Dynamics365峰
阅读(373)
评论(0)
推荐(0)
摘要:
在WebForm,获取提交表单的值一般都是Request.Form["Title"]这样的方式。在MVC中,提供了模型绑定机制。让后台获取表单或Url中的参数变得更加简单。 一、基本模型绑定 你可以直接在参数中用字符串,整型变量,实体或者是List<实体>的方式获取表单提交的参数。 参数中的这些东西 阅读全文
posted @ 2015-05-31 17:23
Dynamics365峰
阅读(193)
评论(0)
推荐(0)
摘要:
前一篇说了MVC数据验证的例子,这次来详细说说各种各样的验证注解。System.ComponentModel.DataAnnotations 一、基础特性 一、Required 必填选项,当提交的表单缺少该值就引发验证错误。 二、StringLength 指定允许的长度 指定最大长度: [Strin 阅读全文
posted @ 2015-05-31 17:21
Dynamics365峰
阅读(240)
评论(0)
推荐(0)
摘要:
一、Html.BeginForm <form>标签 //视图代码 @using (Html.BeginForm("search", "home", FormMethod.Get),new { target="_black",@class="form1" }) { <input type="text" 阅读全文
posted @ 2015-05-31 17:19
Dynamics365峰
阅读(352)
评论(0)
推荐(0)
摘要:
一、所有的Controller都继承自System.Web.Mvc.Controller 目前ASP.NET MVC3默认提供了多种ActionResult的实现,在System.Web.Mvc命名空间里。 其中ActionResult是一个抽象类,所有一下的Result都继承自它,因此如果一个Ac 阅读全文
posted @ 2015-05-31 17:16
Dynamics365峰
阅读(174)
评论(0)
推荐(0)
摘要:
一、Razor基础 1、单行代码书写 @代码 2、多行代码书写 @{ //@加个大括号就可以在里面写C#代码了。 C#代码第一行 C#代码第二行 } 3、Razor模板引擎会自动判别代码块,但是当代码存在二义性的时候,可以用小括号澄清 @{ string name = "张三"; } // @nam 阅读全文
posted @ 2015-05-31 17:15
Dynamics365峰
阅读(241)
评论(0)
推荐(0)
摘要:
一、公共模板 1、@RenderBody() 在网站公用部分通过一个占位符@RenderBody()来为网站独立部分预留一个位置。然后私有页面顶部通过@{Layout="公用模板路径"}来引入公用模板,并在自身放到公用模板的位置。同时也可以设置ViewData或ViewBag设置网站标题,关键词等信 阅读全文
posted @ 2015-05-31 17:14
Dynamics365峰
阅读(223)
评论(0)
推荐(0)
摘要:
一、视图引入命名空间的设置 之前经常写这样的代码,而且每个页面都要写: @model IEnumerable<MvcStart.Models.People_Model> 其实有一种很方便的方法,可以通过配置Views文件夹里的Web.config来简化代码。Views文件夹里的Web.config里 阅读全文
posted @ 2015-05-31 17:12
Dynamics365峰
阅读(448)
评论(0)
推荐(0)
摘要:
一、区别与联系 ViewData 和 TempData 都可以传递弱类型数据,区别如下:TempData 只在当前 Action 中有效,生命周期和 View 相同;保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获 阅读全文
posted @ 2015-05-31 17:11
Dynamics365峰
阅读(428)
评论(0)
推荐(0)
摘要:
一、设计场景 1、设计性能测试场景 Controller有两个视图:设计(Design)视图和运行(Run)视图。启动Controller,在Controller主界面里,我们可以看到这两个视图。 1、设计视图 设计视图显示场景中的所有Vuser组/脚本的列表、负载生成器(Load Generato 阅读全文
posted @ 2015-05-31 16:29
Dynamics365峰
阅读(187)
评论(0)
推荐(0)
摘要:
用户行为模拟器简称VU,VU通过运行VU脚本模拟了用户对软件的操作行为。VU是基于网络协议的。很明显,被测服务器是通过各种各样的网络协议与客户端打交道的。VU要“骗过”被测服务器,当然就要遵守这些协议,按规矩、按步骤来执行动作,否则就会吃“闭门羹”。 基于网络协议的脚本的一个好处是,我们可以使用相对 阅读全文
posted @ 2015-05-31 16:27
Dynamics365峰
阅读(403)
评论(0)
推荐(0)
摘要:
一、基础函数简介 在VU左边导航栏中,有三个LoadRunner框架函数,分别是vuser_init()、Action()、vuser_end()。这三个函数存在于任何Vuser类型的脚本中。 vuser_init:虚拟用户的初始化函数,一般将用户初始化的操作放在这里,如登录操作、分配内存等。在做u 阅读全文
posted @ 2015-05-31 16:24
Dynamics365峰
阅读(375)
评论(0)
推荐(0)
摘要:
LoadRunner是一个用压力测试的软件。这东西比较难上手,光安装就非常麻烦。好不容易一步步跟着安装说明安装好之后,还是用不了。 记录一个问题如下: 导入脚本的时候报错fail to create on online ,无效指针: 关掉杀毒软件,360之类的,然后修复安装 就是在控制面板-程序中找 阅读全文
posted @ 2015-05-31 16:23
Dynamics365峰
阅读(1396)
评论(1)
推荐(0)
摘要:
计划缓冲的基本目的是通过重用执行计划来改进性能。因为,确认执行计划确实可重用很重要。因为即席查询的计划可重用性效率低下,所以一般建议尽可能依赖预定义工作负载技术。为了确保计划缓冲的高效实用,遵循以下建议。 明确地参数化查询的可变部分; 使用存储过程实现业务功能; 使用sp_executesql避免存 阅读全文
posted @ 2015-05-31 15:54
Dynamics365峰
阅读(132)
评论(0)
推荐(0)
摘要:
查询计划hash和查询hash 在SQL Server 2008中引入的围绕执行计划和缓冲的新功能被称为查询计划hash和查询hash。这是使用针对查询或查询计划的算法来生成二进制hash值的二进制对象。 可以从sys.dm_exec_query_stats或sys.dm_exec_requests 阅读全文
posted @ 2015-05-31 15:53
Dynamics365峰
阅读(304)
评论(0)
推荐(0)
摘要:
当查询被提交时,SQL Server检查过程缓冲中匹配的执行计划,如果没有找到,SQL Server执行查询编译和优化以生成新的执行计划。 如果执行计划存在于缓冲中,它在私有的执行上下文中重用,这节约了CPU的编译和优化周期。 具有不同过滤条件的相同查询提交到SQL Server时,如: SELEC 阅读全文
posted @ 2015-05-31 15:52
Dynamics365峰
阅读(396)
评论(0)
推荐(0)
摘要:
一、执行计划缓冲 优化器生成的执行计划保存在SQL Server内存池中的一个特别部分,被称为计划缓冲或过程缓冲。过程缓冲是SQL Server缓存的一部分。在缓冲中保存计划可使SQL Server避免在重新提交相同的查询时再次通过整个查询优化过程运行。SQL Server支持不同的技术,如:计划缓 阅读全文
posted @ 2015-05-31 15:50
Dynamics365峰
阅读(185)
评论(0)
推荐(0)
摘要:
SQL Server使用许多技术来优化资源消耗: 基于语法的查询优化; 无用计划匹配以避免对简单查询的深度优化; 根据当前分布统计的索引和连接策略; 多阶段的查询优化以控制优化开销; 执行计划缓冲以避免重新生成执行计划; 以上技术按以下顺序执行: 解析器; 代数化器; 查询优化器; 执行计划生成,缓 阅读全文
posted @ 2015-05-31 15:49
Dynamics365峰
阅读(230)
评论(0)
推荐(0)
摘要:
为了最简单地说明问题,我特地设计了一张这样的表。 一、GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值。 典型的表现就是跟在SELECT后面的列,如果没有使用聚合函数,必须出现在GROUP BY子句后面。 如下面这个查询报错: 因为对 阅读全文
posted @ 2015-05-31 15:48
Dynamics365峰
阅读(376)
评论(0)
推荐(0)
摘要:
公用表表达式(CTE) 在编写T-SQL代码时,往往需要临时存储某些结果集。前面我们已经广泛使用和介绍了两种临时存储结果集的方法:临时表和表变量。除此之外,还可以使用公用表表达式的方法。公用表表达式(Common Table Expression)是SQL Server2005版本的引入的一个特性。 阅读全文
posted @ 2015-05-31 15:47
Dynamics365峰
阅读(184)
评论(0)
推荐(0)
摘要:
操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。 表:Person_1魏国人物 表:Person_2蜀国人物 A、Union形成并集 Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。 1、限定条件 要是用 阅读全文
posted @ 2015-05-31 15:46
Dynamics365峰
阅读(198)
评论(0)
推荐(0)
摘要:
嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父 阅读全文
posted @ 2015-05-31 15:45
Dynamics365峰
阅读(283)
评论(0)
推荐(0)
摘要:
一、关联子查询-查日期最新列 前天在工作中遇到一条非常有用的SQL语句,想了好久愣是没搞出来。今天将这个问题模拟出来:先看表 需求是,对于每个人,仅显示时间最新的那一条记录。 答案如下: select * from record as a where not exists (select null 阅读全文
posted @ 2015-05-31 15:44
Dynamics365峰
阅读(224)
评论(0)
推荐(0)
摘要:
一、连接查询简介 连接查询中用来连接连个表的条件称为连接条件或连接谓词。其形式为: [<表1>].<列名1><连接运算符>[<表2>].<列2> 常见的连接运算符包括 1、比较运算符:=、>、<、>=、<=、!=、between和and。 2、逻辑运算符:not、and、or。 3、使用betwee 阅读全文
posted @ 2015-05-31 15:43
Dynamics365峰
阅读(422)
评论(0)
推荐(0)
摘要:
表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化。因此如果查询语句不需要索引,就应该删除无用的索引以提高效率。 一、INSERT语句 1、基本插入语句 insert用于向表中输入数据,其具体的语法结构如下: INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可 阅读全文
posted @ 2015-05-31 15:41
Dynamics365峰
阅读(187)
评论(0)
推荐(0)
摘要:
一、语法结构 select select_list [ into new_table ] from table_source [ where search_condition ] [ group by broup_by_expression ] [ having search_condition ] 阅读全文
posted @ 2015-05-31 15:40
Dynamics365峰
阅读(298)
评论(0)
推荐(0)
摘要:
一、查询设计的建议 在一些情况下,查询结构使优化器不能选择最好的处理策略。知道何时发生这种情况以及如何避免它是很重要的。这里主要介绍如下几点: 在小的结果集上操作; 有效使用索引; 避免优化器提示; 使用域和参照完整性; 避免资源密集型的查询; 减少网络传输数量; 减少事务开销; 二、在小结果集上操 阅读全文
posted @ 2015-05-31 15:38
Dynamics365峰
阅读(250)
评论(0)
推荐(0)
摘要:
SQL Server提供了一个被称为数据库引擎调整顾问的工具。这个工具帮助为一个给定的工作负载确认一组最优的索引,而不需要对数据库结构或SQL Server内部结构的深入了解。它还能为一小部分有问题的查询建议调整选项。除了好处该工具也有坏处。应该正确地使用。 一、数据库引擎调整顾问机制 可以直接选择 阅读全文
posted @ 2015-05-31 15:35
Dynamics365峰
阅读(344)
评论(0)
推荐(0)
摘要:
一、分析查询执行计划 执行计划的阅读顺序为,从右到左,从上到下。 由执行计划表示的查询执行的一些特征如下: 如果查询由多个查询的批组成,每个查询的执行计划按照执行的顺序显示。批中的每个执行计划将有一个相对的估算开销,整个批的总开销为100%。 执行计划中的每个图标代表一个操作符。它们每个都有一个相对 阅读全文
posted @ 2015-05-31 15:34
Dynamics365峰
阅读(616)
评论(0)
推荐(0)
摘要:
SQL Server有3种连接类型: Hash连接; 合并连接; 嵌套循环连接; 在许多影响小的行集的简单查询中,嵌套循环连接远远优于hash和合并连接。用于查询的连接类型由优化器动态决定。 下面我来先来建立两张简单的表。Province(十条数据)=》PersonTenThousand(1万数据) 阅读全文
posted @ 2015-05-31 15:33
Dynamics365峰
阅读(222)
评论(0)
推荐(0)
摘要:
尽管查询的执行计划提供了详细的处理策略的单独步骤涉及的估计相对开销,但是它没有提供查询实际的CPU使用、磁盘读写或持续时间等开销。 还有其他比运行Profiler更直接手机性能数据的方法 一、客户统计 客户统计将计算机作为服务器的一个客户端,从这个角度出发去捕捉执行信息。这意味着任何记录事件包括通过 阅读全文
posted @ 2015-05-31 15:31
Dynamics365峰
阅读(243)
评论(0)
推荐(0)
摘要:
当SQL Server的性能变差时,最可能发生的是以下两件事: 首先,某些查询产生了系统资源上很大的压力。这些查询影响整个系统的性能,因为服务器无法足够快速地服务其他SQL查询。 另外,开销较大的查询阻塞了其他请求相同数据库资源的查询,进一步降低了这些查询的性能。优化开销较大的查询不仅改进它们本身的 阅读全文
posted @ 2015-05-31 15:30
Dynamics365峰
阅读(840)
评论(0)
推荐(0)
摘要:
一、SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询; 在后台收集查询信息; 分析性能; 诊断像死锁之类的问题; 调试T-SQL语句; 模拟重放SQL Server活动; 也可以使用SQL Profiler捕 阅读全文
posted @ 2015-05-31 15:29
Dynamics365峰
阅读(185)
评论(0)
推荐(0)
摘要:
要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TA 阅读全文
posted @ 2015-05-31 15:28
Dynamics365峰
阅读(224)
评论(0)
推荐(0)
摘要:
元数据函数 1、获取数据库标识符DB_ID DB_ID函数用于获取当前数据库的唯一ID(int数据类型),数据库ID用于服务器上唯一区分书库。 语法结构: DB_ID (['database_name']) 参数中的database_name是sysname类型的数据库名称,为可选参数。如果没有指定 阅读全文
posted @ 2015-05-31 12:32
Dynamics365峰
阅读(297)
评论(0)
推荐(0)
摘要:
数学函数 1、计算绝对值ABS ABS函数对一个数值表达式结果计算绝对值(bit数据类型除外),返回整数。 语法结构: ABS(数值表达式) 返回值:与数值表达式类型一致的数据 示例: SELECT ABS(-1) --输出 1 2、获取大于等于最小整数值Celling CEILING函数返回大于等 阅读全文
posted @ 2015-05-31 12:30
Dynamics365峰
阅读(154)
评论(0)
推荐(0)
摘要:
文本和图像函数 1、查找特定字符串PATINDEX 语法与字符串的patindex一样。 2、获取文本指针TEXTPTR SQLServer在存储文本类型(ntext、text)和图像数据类型(image)时,默认情况是与常见的基本数据类型(如char、int等)这样的数据时单独存储的,也就是说,如 阅读全文
posted @ 2015-05-31 12:29
Dynamics365峰
阅读(615)
评论(0)
推荐(0)
摘要:
字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数。 1、获取字符的ASCII码 ASCII ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现。 语法结构: ASCII(espression) 这里的express 阅读全文
posted @ 2015-05-31 12:26
Dynamics365峰
阅读(218)
评论(0)
推荐(0)
摘要:
日期时间函数 1、获取当前日期GetDate getdate()函数以datetime数据类型的格式返回当前SQLServer服务器所在计算机的日期和时间。其语法格式为getdate()。返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。 示例: select getdate 阅读全文
posted @ 2015-05-31 12:25
Dynamics365峰
阅读(330)
评论(0)
推荐(0)
摘要:
聚合函数对一组值计算后返回单个值。除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null)。所有的聚合函数均为确定性函数。即任何时候使用一组相同的输入值调用聚合函数执行后的返回值都是相同的,无二义性。T-SQL提供的聚合函数一共有13个之多。 聚合函数通常会在下列场合使用: 阅读全文
posted @ 2015-05-31 12:24
Dynamics365峰
阅读(205)
评论(0)
推荐(0)
摘要:
1、创建统计语法: CREATE STATISTICS statistics_name ON { table_or_indexed_view_name } ( column [ ,...n ] ) [ WHERE <filter_predicate> ] [ WITH [ [ FULLSCAN | 阅读全文
posted @ 2015-05-31 12:16
Dynamics365峰
阅读(214)
评论(0)
推荐(0)
摘要:
SQL Server允许用户手工地控制单独数据库中的统计维护。SQL Server的4个主要的控制紫铜统计的维护的配置如下: 在无索引的列上新建统计(自动创建统计); 更新现有统计(自动更新统计); 用于收集统计的采样度; 现有统计的异步更新(自动异步更新统计); 可以在数据库级别(所有表上的所有索 阅读全文
posted @ 2015-05-31 12:15
Dynamics365峰
阅读(193)
评论(0)
推荐(0)
摘要:
非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引。即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择。 除了索引上的统计,SQL Server可以在没有索引的列上建立统计。即使不是索引列,当你开启了SQL Server自动创建统计功能,SQL Se 阅读全文
posted @ 2015-05-31 12:14
Dynamics365峰
阅读(144)
评论(0)
推荐(0)
摘要:
一、索引在查询优化中的角色 SQL Server的查询优化器是基于开销的优化器、它通过确认选择性、数据的唯一性以及过滤数据(通过WHERE或JOIN子句)所使用的列来决定最佳的数据访问机制。统计与索引一同存在,但是它们也作为断言的一部分存在于没有索引的列上。 作为谓词引用的列中数据分布的最新信息帮助 阅读全文
posted @ 2015-05-31 12:13
Dynamics365峰
阅读(141)
评论(0)
推荐(0)
摘要:
统计是一组存储为柱状图的信息。柱状图是显示数据落入不通分类中的频率的一种统计结构。SQL Server存储的柱状图包括多大200行的列和索引键(或多列索引键的第一列)的数据分布采样。在两个连续采样值之间的索引键值范围上的信息被称为步骤。这些步骤由200个存储值之间的不通大小间隔组成。 一个步骤提供以 阅读全文
posted @ 2015-05-31 12:12
Dynamics365峰
阅读(180)
评论(0)
推荐(0)
摘要:
在有大量事务的数据库中,表和索引随着时间的推移而碎片化。因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理。 1、确定当前数据库中所有需要分析碎片的表。 2、确定所有表和索引的碎片。 3、考虑一下因素以确定需要进行碎片整理的表和索引。 高的碎片水平-avg_fragmenta 阅读全文
posted @ 2015-05-31 12:11
Dynamics365峰
阅读(331)
评论(1)
推荐(0)
摘要:
一、索引的图形界面操作 SQL Server非常强大的就是图形界面操作。关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作。 二、索引统计信息的图形界面操作 阅读全文
posted @ 2015-05-31 12:10
Dynamics365峰
阅读(194)
评论(0)
推荐(0)
摘要:
一、索引压缩 数据和索引压缩在SQL Server2008被引入。压缩一个索引意味着将在一个页面中获得更多的关键字信息。这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少。因为索引中的键值被压缩和解压缩,也将造成CPU和内存的开销,所以这并不是适合所有索引的方案。 默认情况下,索引将不会 阅读全文
posted @ 2015-05-31 12:09
Dynamics365峰
阅读(133)
评论(0)
推荐(0)
摘要:
一、索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中)。其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法。在第一个索引( 阅读全文
posted @ 2015-05-31 12:08
Dynamics365峰
阅读(145)
评论(0)
推荐(0)
摘要:
聚集索引、非聚集索引、非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个 阅读全文
posted @ 2015-05-31 12:07
Dynamics365峰
阅读(1479)
评论(0)
推荐(0)
摘要:
一、非聚集索引维护 非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此。 为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向新的数据页面,而不是更新所有相关非聚集索引的行定位器。这样,虽然降低了非聚集索引的维护开销,但是增加 阅读全文
posted @ 2015-05-31 12:04
Dynamics365峰
阅读(142)
评论(0)
推荐(0)
摘要:
在SQL Server中,非聚集索引其实可以看做是一个含有聚集索引的表,但相对实际的表来说,非聚集索引中所存储的表的列数要少得多,一般就是索引列,聚集键(或RID)。非聚集索引仅仅包含源表中的非聚集索引的列和指向实际物理表的指针。 一、非聚集索引之INCLUDE 非聚集索引其实可以看做一个含有聚集索 阅读全文
posted @ 2015-05-31 12:02
Dynamics365峰
阅读(255)
评论(0)
推荐(0)
摘要:
一、书签查找的概念 书签可以帮助SQL Server快速从非聚集索引条目导向到对应的行,其实这东西几句话我就能说明白。 如果表有聚集索引(区段结构),那么书签就是从非聚集索引找到聚集索引后,利用聚集索引定位到数据。此处的书签就是聚集索引。如果表没有聚集索引(堆结构)。那么扫描非聚集索引后,通过RID 阅读全文
posted @ 2015-05-31 11:59
Dynamics365峰
阅读(232)
评论(0)
推荐(0)
摘要:
实际上,索引的维护主要包括以下两个方面: 页拆分 碎片 这两个问题都和页密度有关,虽然两者的表现形式在本质上有所区别,但是故障排除工具是一样的,因为处理是相同的。 对于非常小的表(比64KB小得多),一个区中的页面可能属于多余一个的索引或表 这被称为混合区。如果数据库中有太多的小表,混合区帮助SQL 阅读全文
posted @ 2015-05-31 11:58
Dynamics365峰
阅读(173)
评论(0)
推荐(0)
摘要:
从CREATE开始 通过显式的CREATE INDEX命令 在创建约束时作为隐含的对象 随约束创建的隐含索引 当向表中添加如下两种约束之一时,就会创建隐含索引。 主键约束(聚集索引) 唯一约束(唯一索引) 一、CREATE INDEX语法 CREATE INDEX语句所做的事情与其听上去一样-用于在 阅读全文
posted @ 2015-05-31 11:48
Dynamics365峰
阅读(258)
评论(0)
推荐(0)
摘要:
一、存储结构 在SQL Server中,有许多不同的可用排列规则选项。 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D")。因为所有内容都表示为数字,所以处理起来速度最快,遗憾的是,它并不总是如人们所想象,在WHERE子句中进行比较时,使用该选项会造成严重的 阅读全文
posted @ 2015-05-31 11:47
Dynamics365峰
阅读(202)
评论(0)
推荐(0)
摘要:
聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这 阅读全文
posted @ 2015-05-31 10:43
Dynamics365峰
阅读(162)
评论(0)
推荐(0)
摘要:
一、目标:编写SQL动态查询 SQL常常和程序代码一起使用。我们通常所说的SQL动态查询,是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句。 string sql = SELECT * FROM Person WHERE Id = $Id 我们期望$Id是一个整型,因此当数据库接收到这个请 阅读全文
posted @ 2015-05-31 10:36
Dynamics365峰
阅读(245)
评论(0)
推荐(0)
摘要:
一、目标:整理数据 有的人有强迫症,他们会为一系列数据的断档而抓狂。 一方面,Id为3这一行确实发生过一些事情,为什么这个查询不返回Id为3的这一行?这条记录数据丢失了吗?那个Column到底是什么?我要为这条数据的丢失负责吗? 二、反模式:填充角落 大多数人对于断档的第一反应就是想要填补其中的空缺 阅读全文
posted @ 2015-05-31 10:35
Dynamics365峰
阅读(260)
评论(0)
推荐(0)
摘要:
一、目标:恢复或重置密码 每个有密码的程序都会碰到用户忘记密码的情况,现今大多数程序都通过E-mail的回馈机制让用户恢复或者重置密码。这个解决方案有一个前提,这个服务有一个前提,就是这个用户能够访问他在注册时留下的邮箱。 二、反模式:使用明文存储密码 在这种恢复密码的解决方案中,很常见的一个错误是 阅读全文
posted @ 2015-05-31 10:34
Dynamics365峰
阅读(445)
评论(0)
推荐(0)
摘要:
一、窗口函数的作用 窗口函数是对一组值进行操作,不需要使用GROUP BY 子句对数据进行分组,还能够在同一行中同时返回基础行的列和聚合列。窗口函数,基础列和聚合列的查询都非常简单。 二、语法格式 窗口函数的语法格式如下: OVER([PARTITION BY value_expression,.. 阅读全文
posted @ 2015-05-31 10:08
Dynamics365峰
阅读(195)
评论(0)
推荐(0)
摘要:
SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。 1、创建测试数据 创建表 --创建表,包含Xml类型列 CREATE TABLE Person ( Id int, Info xml ) 插入 阅读全文
posted @ 2015-05-31 10:07
Dynamics365峰
阅读(420)
评论(0)
推荐(0)
摘要:
一、使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置。 1、开启全文搜索服务: 2、开启数据库的全文索引功能: --开启数据库的全文搜索功能 EXEC sp_fulltext_database 'enable'; 3、创建全文索引目录: --创建全文索 阅读全文
posted @ 2015-05-31 10:06
Dynamics365峰
阅读(470)
评论(0)
推荐(0)
摘要:
触发器可以做很多事情,但也会带来很多问题。使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们。 触发器的一些常见用途如下: 弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服务器的参照完整性以及很多复杂的关系类型)。 创建神级跟踪:这意味写出的记录不仅跟踪大多数当前的数据, 阅读全文
posted @ 2015-05-31 10:05
Dynamics365峰
阅读(260)
评论(0)
推荐(0)
摘要:
锁是一种防止在某对象执行动作的一个进程与已在该对象上执行的其他进行相冲突的机制。也就是说,如果有其他人在操作某个对象,那么你旧不能在该对象上进行操作。你能否执行操作取决于其他用户正在进行的操作。 通过锁可以防止的问题 锁可以解决以下4种主要问题: 脏读 非重复性读取 幻读 丢失更新 1、脏读 如果一 阅读全文
posted @ 2015-05-31 10:03
Dynamics365峰
阅读(152)
评论(0)
推荐(0)
摘要:
事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。 为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPDAT 阅读全文
posted @ 2015-05-31 10:01
Dynamics365峰
阅读(191)
评论(0)
推荐(0)
摘要:
一、表变量 表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表 阅读全文
posted @ 2015-05-31 10:00
Dynamics365峰
阅读(274)
评论(0)
推荐(0)
摘要:
SQL Server系统存储过程也是好几百个,算了,还是写几个常用的。 1、sp_help 查询表的信息 执行存储过程: sp_help Person 显示结果如下: 妈了个B,有了这张图,你还不懂怎么看一张表有那些信息,那哥以后都不学SQL Server了。另外,还有约束,存储过程,自定义函数等等 阅读全文
posted @ 2015-05-31 09:57
Dynamics365峰
阅读(290)
评论(0)
推荐(0)
浙公网安备 33010602011771号