C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  496 随笔 :: 0 文章 :: 634 评论 :: 571万 阅读

10 2013 档案

摘要:一、SQL Profiler工具简介SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:图形化监视SQL Server查询;在后台收集查询信息;分析性能;诊断像死锁之类的问题;调试T-SQL语句;模拟重放SQL Server活动;也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。 1、Profiler跟踪 从开始=》所有程序=》Microsoft SQL Server 2008=》性能工具打开Profiler工具,也可以打开SQL Server Management Studio=》工具=》SQL Serv.. 阅读全文
posted @ 2013-10-31 09:46 逆心 阅读(140051) 评论(10) 推荐(30) 编辑

摘要:统计是一组存储为柱状图的信息。柱状图是显示数据落入不通分类中的频率的一种统计结构。SQL Server存储的柱状图包括多大200行的列和索引键(或多列索引键的第一列)的数据分布采样。在两个连续采样值之间的索引键值范围上的信息被称为步骤。这些步骤由200个存储值之间的不通大小间隔组成。 一个步骤提供以下信息:给定步骤的最高值(RANGE_HI_KEY);等于RANGE_HI_KEY的行数(EQ_ROWS);前一个最高值和当前最高值之间的行范围,这些样本不计算在内(RANGE_ROWS);范围中不同行的数量(DISTINCT_RANGE_ROWS),如果范围中所有值都是唯一的,那么RANGE... 阅读全文
posted @ 2013-10-29 09:51 逆心 阅读(1060) 评论(0) 推荐(0) 编辑

摘要:一、索引的图形界面操作 SQL Server非常强大的就是图形界面操作。关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作。 二、索引统计信息的图形界面操作 阅读全文
posted @ 2013-10-29 09:29 逆心 阅读(2787) 评论(0) 推荐(0) 编辑

摘要:SqlDataAdapter类常用操作 SqlDataAdapter常用于从数据库中返回一个结果集时。 常用操作: Fill(); 示例: static void Main(string[] args) { string str = "server=CZZ;database=Test;uid=sa;pwd=123;Asynchronous Processing=true"; SqlConnection conn = new SqlConnection(str); string strS... 阅读全文
posted @ 2013-10-28 15:53 逆心 阅读(3547) 评论(0) 推荐(2) 编辑

摘要:一、基本SVN操作 安装了SVN之后,在本机上点击右键,就能够看到如下信息: 1、建立SVNRepository 下面来建立一个SVNRepository。这个文件夹是同步用的,你可以放在本机的任意目录,也可以放在公司的服务器上面。 建立SVN Repository的步骤如下: 任意选... 阅读全文
posted @ 2013-10-25 11:59 逆心 阅读(5223) 评论(0) 推荐(1) 编辑

摘要:jQuery获取URL信息有很多方法,但是使用这个插件就非常爽了。 托管地址在:http://github.com/allmarkedup/jQuery-URL-Parser // http: //localhost:19090/home/index?id=1 ... 阅读全文
posted @ 2013-10-24 19:06 逆心 阅读(1419) 评论(0) 推荐(0) 编辑

摘要:JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现。这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣。 下面给出一个例子: 测试JS扩展方法 好像只是告诉自己有这样一个东西而已; 下面给出找到的一个非常不错的js扩展:// 清除两边的空格 String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ''); }; // 合并多个空白为一个空白 String.prototype.Rese... 阅读全文
posted @ 2013-10-24 17:22 逆心 阅读(19489) 评论(2) 推荐(7) 编辑

摘要:一、DES加解密 DES一共就有4个参数参与运作:明文、密文、密钥、向量。其中这4者的关系可以理解为: 密文=明文+密钥+向量; 明文=密文-密钥-向量; 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么这个词加上密钥形成的密文,仍然会重复,这给破解者有机可乘,破解者可以根据重复的内容,猜出是什么词,然而一旦猜对这个词,那么,他就能算出密钥,整篇文章就被破解了!加上向量这个参数以后,每块文字段都会依次加上一段值,这样,即使相同的文字,加密出来的密文,也是不一样的,算法的安全性大大提高! 下面给出DES加、解密的.Net封装版:using System;using Sys... 阅读全文
posted @ 2013-10-24 14:42 逆心 阅读(3068) 评论(0) 推荐(0) 编辑

摘要:一、索引压缩 数据和索引压缩在SQL Server2008被引入。压缩一个索引意味着将在一个页面中获得更多的关键字信息。这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少。因为索引中的键值被压缩和解压缩,也将造成CPU和内存的开销,所以这并不是适合所有索引的方案。 默认情况下,索引将不会被压缩。必须明确地在创建索引时要求索引被压缩。有两种压缩类型:行级压缩和页面级压缩。索引中的非叶子页面不接受页面类型压缩。 创建压缩索引的语法如下:CREATE NONCLUSTERED INDEX IX_Person_NameON PersonOneMillion(Name)WITH(DAT... 阅读全文
posted @ 2013-10-24 14:15 逆心 阅读(1831) 评论(0) 推荐(0) 编辑

摘要:一、索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中)。其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法。在第一个索引(必须是针对一组唯一值的聚集索引)之后,通过使用来自第一个索引的聚集键作为参考点,SQL Server还能在视图上建立额外的索引。其限制如下:视图必须使用SCHEMABINDING选项;如果视图引用了任何用户自定义函数,那么这些函数也必须是模式绑定的;视图不可以引用任何其他的视图-只能引用表和UDF. 阅读全文
posted @ 2013-10-23 23:31 逆心 阅读(3358) 评论(0) 推荐(1) 编辑

摘要:聚集索引、非聚集索引、非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个字段上定义主键。这时主键将会被作为一个唯一的非聚集索引(唯一索引)被创建。通过指定NONCLUSTERED关键字就可以做到。CREATE TABLE MyTableKeyExample{ Column1 int IDENTITY KEY NONCLUSTERED, Column2 int ... 阅读全文
posted @ 2013-10-23 18:22 逆心 阅读(1807) 评论(0) 推荐(1) 编辑

摘要:一、非聚集索引维护 非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此。 为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向新的数据页面,而不是更新所有相关非聚集索引的行定位器。这样,虽然降低了非聚集索引的维护开销,但是增加了从非聚集索引行到数据行的导航开销,因为添加了一个旧数据页面和信数据页面之间的连接。因此,将聚集索引作为行定位器降低了非聚集索引相关的开销。二、定义书签查找 当一个查询请求不是优化器选择的非聚集索引一部分的列时,需要一个查找。这对一个聚集索引来说是一个关键字查找,堆堆表来说是一个RID查找。这... 阅读全文
posted @ 2013-10-23 16:52 逆心 阅读(848) 评论(0) 推荐(0) 编辑

摘要:一、目标:编写SQL动态查询 SQL常常和程序代码一起使用。我们通常所说的SQL动态查询,是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句。 string sql = SELECT * FROM Person WHERE Id = $Id 我们期望$Id是一个整型,因此当数据库接收到这个请求时,$Id的值就是查询语句的一部分。 SQL动态查询是有效利用数据库很自然的方法。当你使用程序内的变量来指定如何进行查询时,就是将SQL作为连接程序和数据库的桥梁。程序和数据库之间通过这种方式进行“对话”。 然而,要让程序按照你想要的方式执行并不难,难的是让程序变得安全,不执行你不想让它... 阅读全文
posted @ 2013-10-21 19:22 逆心 阅读(2978) 评论(1) 推荐(1) 编辑

摘要:一、目标:整理数据 有的人有强迫症,他们会为一系列数据的断档而抓狂。 一方面,Id为3这一行确实发生过一些事情,为什么这个查询不返回Id为3的这一行?这条记录数据丢失了吗?那个Column到底是什么?我要为这条数据的丢失负责吗?二、反模式:填充角落 大多数人对于断档的第一反应就是想要填补其... 阅读全文
posted @ 2013-10-19 22:33 逆心 阅读(1377) 评论(0) 推荐(0) 编辑

摘要:一、目标:恢复或重置密码 每个有密码的程序都会碰到用户忘记密码的情况,现今大多数程序都通过E-mail的回馈机制让用户恢复或者重置密码。这个解决方案有一个前提,这个服务有一个前提,就是这个用户能够访问他在注册时留下的邮箱。二、反模式:使用明文存储密码 在这种恢复密码的解决方案中,很常见的一个错误是允许用户申请系统发送一封带有明文密码的邮件。这是数据库设计上一个可怕的漏洞,并且会导致一系列安全问题,可能会使得未取得授权的人获得系统访问权限。 1、存储密码 首先我们设计一张表如下: 类似于这张表,我们插入一条记录的SQL语句如下:INSERT INTO Account (Accoun... 阅读全文
posted @ 2013-10-19 19:00 逆心 阅读(2027) 评论(1) 推荐(1) 编辑

摘要:一、目标:全文搜索 任何存储文本的应用都有针对这个文本进行单词或词组搜索的需求。我们使用数据库存储越来越多的文本数据,同时也需要搜索速度越来越快。Web应用尤其需要高性能和高扩展性数据库搜索技术。 SQL基本原理就是一列中的单个数据是原子性的。也就是说,当我们对两个值进行比较时,通常是把两个值当... 阅读全文
posted @ 2013-10-18 18:59 逆心 阅读(1180) 评论(0) 推荐(0) 编辑

摘要:一、使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置。 1、开启全文搜索服务: 2、开启数据库的全文索引功能: 3、创建全文索引目录: 4、创建唯一索引: 5、创建全文索引: 二、使用全文搜索 CONTAINS搜索方式 1.简单词搜索 - 搜索一个或多 阅读全文
posted @ 2013-10-18 16:43 逆心 阅读(9523) 评论(3) 推荐(4) 编辑

摘要:一、减少输入 程序员都喜欢使用通配符,如: SELECT * FROM Person 又或者省略字段名: INSERT INTO Person VALUES('10','张飞'...)二、捷径会让你迷失方向 对于以上代码,如果你仅仅是在开发过程中用于查看一下数据库信息,又或者你只是写个小程序自己玩玩,这是没有什么问题的。 但是如果一旦你习惯于这样编写正式生产环境中的代码,那问题就随之而来了。 1、破坏代码重构 如果数据库更改了,比如增加了一列: ALTER TABLE Person Add Age int 这下糟糕了,你程序中所有的 INSERT INTO Pe 阅读全文
posted @ 2013-10-17 18:42 逆心 阅读(841) 评论(0) 推荐(0) 编辑

摘要:一、问题提出 随机数在数据库中是经常用到的系统。 例如,一个广告系统希望随机选择一个广告来显示。随机推荐相关文章等等。 在SQL Server中查找随机数最简单的方法为: SELECT TOP 1 * FROM Person ORDER BY NEWID() 以上SQL语句的执行计划如下: 以上这种方法,需要对整个表进行一次排序,而且还无法有效地使用索引。加入我们只需要前几条数据,那么好不容易对整个结果集完成了排序,但绝大多数都浪费了。 以上的方式缺点如下: 随着数据量的增加,随机数的产生会变慢。 数据主键并不连续,并且随机数生成算法并没有考虑到这一点。二、合理使用反模... 阅读全文
posted @ 2013-10-15 17:21 逆心 阅读(718) 评论(0) 推荐(0) 编辑

摘要:为了最简单地说明问题,我特地设计了一张这样的表。 一、GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值。 典型的表现就是跟在SELECT后面的列,如果没有使用聚合函数,必须出现在GROUP BY子句后面。 如下面这个查询报错... 阅读全文
posted @ 2013-10-12 18:45 逆心 阅读(5244) 评论(1) 推荐(4) 编辑

摘要:一、提出问题 不可避免地,我们都数据库总有一些字段是没有值的。不管是插入一个不完整的行,还是有些列可以合法地拥有一些无效值。SQL 支持一个特殊的空值,就是NULL。 在很多时候,NULL值导致我们的程序出现报错的现象,于是很多人就开始拒绝NULL值,想各种各样的方法来避免使用NULL值,但是很遗憾,NULL值恰恰就是满足我们的需要用于表示空值的。 空值经常存在于我们的数据库当中: 例如一个在职员工的离职时间。 例如一辆电力驱动的车的燃油消耗比。二、反模式 很多人对于NULL值感觉到恐惧,原因在于不知道什么时候就会因为一个NULL冒出一个报错。实际上都是由于对NULL值的理解有误引... 阅读全文
posted @ 2013-10-11 22:08 逆心 阅读(1037) 评论(0) 推荐(0) 编辑

摘要:多媒体文件已经广泛应用在很多程序当中。比如用户的头像,汽车的产品图片等等。 从我个人以往的经验来看,将文件的路径存储入数据库,然后文件本身存储于硬盘当中已是万年不变的解决方案。 其实,存储图片路径与存储图片文件本身,两种方案都有很好的立足点,但是大部分程序员都是将文件存储于数据库之外。虽然,这种方法没有什么大问题,但的确是存在一定的风险的。一、问题描述 下面就来论述一下关于将文件存储于数据库外部的缺点。 1、垃圾回收问题。 当你想删除一张图片时,你只能够删除掉数据库中的记录,图片文件是没有办法由SQL语句删除的,你必须在你的高级程序中维护着这些图片。保证在删除数据行的同时删除... 阅读全文
posted @ 2013-10-11 19:00 逆心 阅读(1786) 评论(0) 推荐(1) 编辑

摘要:一、说明问题 其实这篇非常简单,因为大家都是用这个方法解决的,我决定用自己的语言来描述清楚这一个问题。 假设,我们有一个列,这个列只能够取某些有效值。比如一个用户表,我们有一个姓氏列,我们需要限定里面的值为中国的姓氏,比如:赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨。二、反模式 对于这个问题,其实只有初学者可能会用这个方法,就是使用CHECK约束或者触发器来限定列的值,比如: CHECK (lastname IN ('赵','钱','孙','李')); 这样做的缺点如下: 1、获取所有可选值有困难,假设我要做个下拉列表,让用户选择可供输入的 阅读全文
posted @ 2013-10-11 18:29 逆心 阅读(680) 评论(0) 推荐(0) 编辑

摘要:在NHibernate中,ISessionFactory是线程安全的,对应一个数据库。它是生成ISession的工厂。而ISession是线程不安全的。 创建一个ISessionFactory需要消耗比较多的资源。因此,我们只在程序初始化的时候创建一次,以后就一直使用这个ISessionFactory。 而ISession的创建只消耗很少的资源。因此我们可以随意创建。一、原始单例模式封装的ISessionFactory 因此,对于ISessionFactory,我们使用饿汉单例模式实现它。 原始饿汉单例模式封装ISessionFactory实例: //密封类 ... 阅读全文
posted @ 2013-10-10 12:40 逆心 阅读(1593) 评论(0) 推荐(2) 编辑

摘要:一、HttpContext概述 HttpContext基于HttpApplication的处理管道,由于HttpContext对象贯穿整个处理过程,所以,可以从HttpApplication处理管道的前端将状态数据传递到管道的后端,完成状态的传递任务。 HttpContext的生命周期从服务器接收的HTTP请求开始到反应发送回客户端结束。 在WebForm或类库(包括MVC)项目中,通过Current静态属性,就能够获得HttpContext的对象。 HttpContext context = HttpContext.Current; 如果是在Asp.net MVC的Controll... 阅读全文
posted @ 2013-10-10 09:49 逆心 阅读(39785) 评论(0) 推荐(2) 编辑

摘要:一、常用属性名称说明Depth获取一个值,用于指示当前行的嵌套深度。FieldCount获取当前行中的列数。HasRows获取一个值,该值指示SqlDataReader是否有行。IsClosed指定的SqlDataReader实例是否已关闭。Item[Int32]获取指定列(数字索引),通常在While.Read()中使用。Item[String]获取指定列(字符串索引),通常在While.Read()中使用。RecordsAffected获取执行 T-SQL 语句所更改、插入或删除的行数。VisibleFieldCount获取SqlDataReader中未隐藏的字段的数目。 示例: ... 阅读全文
posted @ 2013-10-09 16:14 逆心 阅读(6487) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示