摘要:
一、窗口函数的作用 窗口函数是对一组值进行操作,不需要使用GROUP BY 子句对数据进行分组,还能够在同一行中同时返回基础行的列和聚合列。窗口函数,基础列和聚合列的查询都非常简单。二、语法格式 窗口函数的语法格式如下:OVER([PARTITION BY value_expression,..... 阅读全文
posted @ 2015-04-14 16:54
铭轩同学
阅读(258)
评论(0)
推荐(0)
|
摘要:
一、窗口函数的作用 窗口函数是对一组值进行操作,不需要使用GROUP BY 子句对数据进行分组,还能够在同一行中同时返回基础行的列和聚合列。窗口函数,基础列和聚合列的查询都非常简单。二、语法格式 窗口函数的语法格式如下:OVER([PARTITION BY value_expression,..... 阅读全文
posted @ 2015-04-14 16:54
铭轩同学
阅读(258)
评论(0)
推荐(0)
摘要:
SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。 1、创建测试数据 创建表 --创建表,包含Xml类型列 CREATE TABLE Person ( Id int, ... 阅读全文
posted @ 2015-04-14 16:53
铭轩同学
阅读(405)
评论(0)
推荐(0)
摘要:
一、使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置。 1、开启全文搜索服务: 2、开启数据库的全文索引功能: --开启数据库的全文搜索功能 EXEC sp_fulltext_database 'enable'; 3、创建全文索引目录:... 阅读全文
posted @ 2015-04-14 16:50
铭轩同学
阅读(370)
评论(0)
推荐(0)
摘要:
触发器可以做很多事情,但也会带来很多问题。使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们。 触发器的一些常见用途如下:弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服务器的参照完整性以及很多复杂的关系类型)。创建神级跟踪:这意味写出的记录不仅跟踪大多数当前的数据... 阅读全文
posted @ 2015-04-14 16:49
铭轩同学
阅读(267)
评论(0)
推荐(0)
摘要:
锁是一种防止在某对象执行动作的一个进程与已在该对象上执行的其他进行相冲突的机制。也就是说,如果有其他人在操作某个对象,那么你旧不能在该对象上进行操作。你能否执行操作取决于其他用户正在进行的操作。通过锁可以防止的问题 锁可以解决以下4种主要问题:脏读非重复性读取幻读丢失更新 1、脏读 如果一... 阅读全文
posted @ 2015-04-14 16:48
铭轩同学
阅读(153)
评论(0)
推荐(0)
摘要:
事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。 为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPD... 阅读全文
posted @ 2015-04-14 16:47
铭轩同学
阅读(182)
评论(0)
推荐(0)
摘要:
一、表变量 表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是... 阅读全文
posted @ 2015-04-14 16:46
铭轩同学
阅读(202)
评论(0)
推荐(0)
摘要:
SQL Server系统存储过程也是好几百个,算了,还是写几个常用的。 1、sp_help 查询表的信息 执行存储过程: sp_help Person 显示结果如下: 妈了个B,有了这张图,你还不懂怎么看一张表有那些信息,那哥以后都不学SQL Server了。另外,还有约束,存储过... 阅读全文
posted @ 2015-04-14 16:43
铭轩同学
阅读(536)
评论(0)
推荐(0)
摘要:
CAST和CONVERT都经常被使用。特别提取出来作为一篇文章,方便查找。 CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。 既然CONVERT包括了CAST的所有功能,而且CON... 阅读全文
posted @ 2015-04-14 16:40
铭轩同学
阅读(211)
评论(0)
推荐(0)
摘要:
SQL Server系统视图非常的多,因此不可能一个一个地写,我最近一直在想,对于数据库的系统视图应该如何学,但是看了一下目录之后,我呆了,我觉得每个写一次,可能都要花费1个星期的时间,如果对每一个返回的列的作用都了解清楚,那不得了,你至少需要3个月的时间。后来我想了一个,不行,这种学习方法是错... 阅读全文
posted @ 2015-04-14 16:39
铭轩同学
阅读(164)
评论(0)
推荐(0)
摘要:
批处理简介 批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。 为了将一个脚本分为多个批处理,可使用GO语句。 GO语句的特点: GO语句必须自成一行,只有注释可以再同一行上。 ... 阅读全文
posted @ 2015-04-14 16:38
铭轩同学
阅读(243)
评论(0)
推荐(0)
摘要:
分区表简介 分区表是SQL Server2005新引入的概念,这个特性在逻辑上将一个表在物理上分为多个部分。(即它允许将一个表存储在不同的物理磁盘里)。在SQL Server2005之前,分区表实际上是分布式视图,也就是多个表做union操作。 分区表在逻辑上是一个表,而物理上是多个表。在用户的... 阅读全文
posted @ 2015-04-14 16:37
铭轩同学
阅读(203)
评论(0)
推荐(0)
摘要:
文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQL Server通过管理逻辑上的文件组的方式来管理文件。 SQL Server通过文件组对数据文件进行管理。我们看到的逻辑数据库由一个或者多个文件组构成... 阅读全文
posted @ 2015-04-14 16:35
铭轩同学
阅读(256)
评论(0)
推荐(0)
摘要:
SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存。预读100次,也就是估计将要从硬盘中读取了100页数据到缓存。 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘。物理读10页,从硬盘中读取10页数据到缓存。 逻辑读:从缓存中取出所有数据。逻辑... 阅读全文
posted @ 2015-04-14 16:34
铭轩同学
阅读(228)
评论(0)
推荐(0)
摘要:
视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象。可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列;或者也可以创建一个复杂的查询,连接几个表,使的这些表看起来像一个表。一、简单的视图 视图的语法如下:... 阅读全文
posted @ 2015-04-14 16:33
铭轩同学
阅读(257)
评论(0)
推荐(0)
摘要:
SQL Server存储机制 1、区段 区段(extent)是用来为表和索引分配空间的基本存储单元。它由8个连续的64KB数据页组成。 基于区段(而不是实际使用空间)分配空间的概念的要点: 一旦区段已满,那么下一记录将要占据的空间不是记录的大小,而是整个新区段的大小。一次分配一个区段而不是分... 阅读全文
posted @ 2015-04-14 16:32
铭轩同学
阅读(148)
评论(0)
推荐(0)
摘要:
一、约束的分类 在SQLServer中,有3种不同类型的约束。 1、实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键。 2、域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束。 3、参照完整性约束 如果某列的值必须与其他... 阅读全文
posted @ 2015-04-14 16:31
铭轩同学
阅读(340)
评论(0)
推荐(0)
摘要:
一、查询设计的建议 在一些情况下,查询结构使优化器不能选择最好的处理策略。知道何时发生这种情况以及如何避免它是很重要的。这里主要介绍如下几点:在小的结果集上操作;有效使用索引;避免优化器提示;使用域和参照完整性;避免资源密集型的查询;减少网络传输数量;减少事务开销;二、在小结果集上操作 为了改进... 阅读全文
posted @ 2015-04-14 16:14
铭轩同学
阅读(231)
评论(0)
推荐(0)
摘要:
SQL Server提供了一个被称为数据库引擎调整顾问的工具。这个工具帮助为一个给定的工作负载确认一组最优的索引,而不需要对数据库结构或SQL Server内部结构的深入了解。它还能为一小部分有问题的查询建议调整选项。除了好处该工具也有坏处。应该正确地使用。一、数据库引擎调整顾问机制 可以直接... 阅读全文
posted @ 2015-04-14 16:13
铭轩同学
阅读(137)
评论(0)
推荐(0)
摘要:
一、分析查询执行计划 执行计划的阅读顺序为,从右到左,从上到下。 由执行计划表示的查询执行的一些特征如下:如果查询由多个查询的批组成,每个查询的执行计划按照执行的顺序显示。批中的每个执行计划将有一个相对的估算开销,整个批的总开销为100%。执行计划中的每个图标代表一个操作符。它们每个都有一个相对... 阅读全文
posted @ 2015-04-14 16:12
铭轩同学
阅读(177)
评论(0)
推荐(0)
摘要:
SQL Server有3种连接类型:Hash连接;合并连接;嵌套循环连接; 在许多影响小的行集的简单查询中,嵌套循环连接远远优于hash和合并连接。用于查询的连接类型由优化器动态决定。 下面我来先来建立两张简单的表。Province(十条数据)=》PersonTenThousand(1万数据... 阅读全文
posted @ 2015-04-14 16:11
铭轩同学
阅读(156)
评论(0)
推荐(0)
摘要:
尽管查询的执行计划提供了详细的处理策略的单独步骤涉及的估计相对开销,但是它没有提供查询实际的CPU使用、磁盘读写或持续时间等开销。 还有其他比运行Profiler更直接手机性能数据的方法一、客户统计 客户统计将计算机作为服务器的一个客户端,从这个角度出发去捕捉执行信息。这意味着任何记录事件包... 阅读全文
posted @ 2015-04-14 16:09
铭轩同学
阅读(185)
评论(0)
推荐(0)
摘要:
当SQL Server的性能变差时,最可能发生的是以下两件事:首先,某些查询产生了系统资源上很大的压力。这些查询影响整个系统的性能,因为服务器无法足够快速地服务其他SQL查询。另外,开销较大的查询阻塞了其他请求相同数据库资源的查询,进一步降低了这些查询的性能。优化开销较大的查询不仅改进它们本身的... 阅读全文
posted @ 2015-04-14 16:08
铭轩同学
阅读(233)
评论(0)
推荐(0)
摘要:
一、SQL Profiler工具简介SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:图形化监视SQL Server查询;在后台收集查询信息;分析性能;诊断像死锁之类的问题;调试T-SQL语句;模拟重放SQL Server活动;也可以使用SQL Profiler捕捉在SQL Se... 阅读全文
posted @ 2015-04-14 16:07
铭轩同学
阅读(210)
评论(0)
推荐(0)
摘要:
要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CR... 阅读全文
posted @ 2015-04-14 16:04
铭轩同学
阅读(248)
评论(0)
推荐(0)
|