Document

随笔分类 -  SQLSERVER

摘要:非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引。即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择。 除了索引上的统计,SQL Server可以在没有索引的列上建立统计。即使不是索引列,当你开启了SQL Server自动创建统计功能,SQL Se 阅读全文
posted @ 2017-07-13 14:42 从未被超越 阅读(240) 评论(0) 推荐(0)
摘要:1、创建统计语法: 以上有3个词比较陌生,看看: FULLSCAN:通过全扫描表或索引视图中的所有行来计算统计信息。 FULLSCAN 和 SAMPLE 100 PERCENT 的结果相同。 FULLSCAN 不能与 SAMPLE 选项一起使用。 SAMPLE number { PERCENT | 阅读全文
posted @ 2017-07-13 14:41 从未被超越 阅读(290) 评论(0) 推荐(0)
摘要:为了最简单地说明问题,我特地设计了一张这样的表。 一、GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值。 典型的表现就是跟在SELECT后面的列,如果没有使用聚合函数,必须出现在GROUP BY子句后面。 如下面这个查询报错: 因为对 阅读全文
posted @ 2017-07-13 14:40 从未被超越 阅读(429) 评论(0) 推荐(0)
摘要:一、提出问题 不可避免地,我们都数据库总有一些字段是没有值的。不管是插入一个不完整的行,还是有些列可以合法地拥有一些无效值。SQL 支持一个特殊的空值,就是NULL。 在很多时候,NULL值导致我们的程序出现报错的现象,于是很多人就开始拒绝NULL值,想各种各样的方法来避免使用NULL值,但是很遗憾 阅读全文
posted @ 2017-07-13 14:40 从未被超越 阅读(204) 评论(0) 推荐(0)
摘要:一、问题提出 随机数在数据库中是经常用到的系统。 例如,一个广告系统希望随机选择一个广告来显示。随机推荐相关文章等等。 在SQL Server中查找随机数最简单的方法为: 以上SQL语句的执行计划如下: 以上这种方法,需要对整个表进行一次排序,而且还无法有效地使用索引。加入我们只需要前几条数据,那么 阅读全文
posted @ 2017-07-13 14:38 从未被超越 阅读(197) 评论(0) 推荐(0)
摘要:一、减少输入 程序员都喜欢使用通配符,如: 又或者省略字段名: 二、捷径会让你迷失方向 对于以上代码,如果你仅仅是在开发过程中用于查看一下数据库信息,又或者你只是写个小程序自己玩玩,这是没有什么问题的。 但是如果一旦你习惯于这样编写正式生产环境中的代码,那问题就随之而来了。 1、破坏代码重构 如果数 阅读全文
posted @ 2017-07-13 14:37 从未被超越 阅读(191) 评论(0) 推荐(0)
摘要:一、目标:全文搜索 任何存储文本的应用都有针对这个文本进行单词或词组搜索的需求。我们使用数据库存储越来越多的文本数据,同时也需要搜索速度越来越快。Web应用尤其需要高性能和高扩展性数据库搜索技术。 SQL基本原理就是一列中的单个数据是原子性的。也就是说,当我们对两个值进行比较时,通常是把两个值当成一 阅读全文
posted @ 2017-07-13 14:36 从未被超越 阅读(280) 评论(0) 推荐(0)
摘要:聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这 阅读全文
posted @ 2017-07-13 14:30 从未被超越 阅读(248) 评论(0) 推荐(0)
摘要:从CREATE开始 通过显式的CREATE INDEX命令 在创建约束时作为隐含的对象 随约束创建的隐含索引 当向表中添加如下两种约束之一时,就会创建隐含索引。 一、CREATE INDEX语法 CREATE INDEX语句所做的事情与其听上去一样-用于在指定表或视图上基于声明的列创建索引: CRE 阅读全文
posted @ 2017-07-13 14:27 从未被超越 阅读(368) 评论(0) 推荐(0)
摘要:SQL Server索引的设计主要考虑因素如下: 检查WHERE条件和连接条件列; 使用窄索引; 检查列的选择性; 检查列的数据类型; 考虑列顺序; 考虑索引类型(聚集索引OR非聚集索引); 一、检查WHERE条件列和链接条件列 当一个查询提交到SQL Server时,查询优化器尝试为查询中引用的所 阅读全文
posted @ 2017-07-13 14:26 从未被超越 阅读(153) 评论(0) 推荐(0)
摘要:一、索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中)。其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法。在第一个索引( 阅读全文
posted @ 2017-07-13 14:15 从未被超越 阅读(297) 评论(0) 推荐(0)
摘要:一、索引压缩 数据和索引压缩在SQL Server2008被引入。压缩一个索引意味着将在一个页面中获得更多的关键字信息。这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少。因为索引中的键值被压缩和解压缩,也将造成CPU和内存的开销,所以这并不是适合所有索引的方案。 默认情况下,索引将不会 阅读全文
posted @ 2017-07-13 14:14 从未被超越 阅读(246) 评论(0) 推荐(0)
摘要:在有大量事务的数据库中,表和索引随着时间的推移而碎片化。因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理。 1、确定当前数据库中所有需要分析碎片的表。 2、确定所有表和索引的碎片。 3、考虑一下因素以确定需要进行碎片整理的表和索引。 高的碎片水平-avg_fragmenta 阅读全文
posted @ 2017-07-13 14:09 从未被超越 阅读(275) 评论(0) 推荐(0)
摘要:一、索引的图形界面操作 SQL Server非常强大的就是图形界面操作。关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作。 二、索引统计信息的图形界面操作 阅读全文
posted @ 2017-07-13 14:02 从未被超越 阅读(390) 评论(0) 推荐(0)
摘要:聚集索引、非聚集索引、非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个 阅读全文
posted @ 2017-07-13 14:01 从未被超越 阅读(288) 评论(0) 推荐(0)
摘要:【转】HTTP传输二进制初探 http://www.51testing.com/?uid-390472-action-viewspace-itemid-233993 【转】HTTP传输二进制初探 上一篇 / 下一篇 2011-04-11 04:34:49 / 个人分类:知识 查看( 139 ) /  阅读全文
posted @ 2017-07-12 11:23 从未被超越 阅读(8812) 评论(0) 推荐(0)
摘要:httpWebRequest获取流和WebClient的文件抓取 昨天写一个抓取,遇到了一个坑,就是在获取网络流的时候,人为的使用了stream.Length来获取流的长度,获取的时候会抛出错误,查了查文档,原因是某些流是无法获取到数据的长度的,所以不能直接得到。如果是常和stream打交道就能避免 阅读全文
posted @ 2017-07-12 11:08 从未被超越 阅读(2518) 评论(0) 推荐(0)
摘要:对于数据模型的建模,最有名的要数ERWin和PowerDesigner,基本上,PowerDesigner是在中国软件公司中他是非常有名的,其易用性、功能、对流行技术框架的支持、以及它的模型库的管理理念,都深受设计师们喜欢。PowerDesigner是我一直以来非常喜欢的一个设计工具,对于它,我可以 阅读全文
posted @ 2017-06-29 13:37 从未被超越 阅读(1201) 评论(0) 推荐(0)
摘要:数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法。 将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁。 SQL Server对付死锁的办法是牺牲掉其中的一个,抛出异常,并且回滚 阅读全文
posted @ 2017-06-26 18:41 从未被超越 阅读(1344) 评论(0) 推荐(0)
摘要:SQL Server 作业无非就是按照规定的时间执行指定的脚本,这里介绍如何用SSMS(SQL Sever 2008)创建作业备份数据库。 (0)假设在创建作业之前你所要备份的数据库已经存在;其次,你已经会启动SQL Sever 代理(一般是关闭的) (1)创建SQL Server代理作业 (1.1 阅读全文
posted @ 2017-05-03 11:50 从未被超越 阅读(1114) 评论(0) 推荐(0)