DELETE操作会将数据行记录在日志文件中,因此,大批量删除数据时,会有大量的日志生成。如下代码将删除ProductID为219的产品。DELETE Production Product WHERE ProductID=219;TRUNCATE TABLE操作可删除整张
DELETE语句用于删除符合条件的数据。DELETE检索数据的性能与SELECT语句一样,取决于数据量及过滤字段的特征。与UPDATE语句相同,DELETE语句不支持GROUP BY及ORDER BY子句。同样地,DELETE语句需要对数据进行删
UPDATE语句会更新符合过滤条件的数据行,SQL Server为了保证数据的完整性,在UPDATE语句的执行过程中,会给语句中所涉及的表和数据加上适当的更新锁或排他锁(关于锁的详细信息,后续章节会详细介绍)。由于更新
UPDATE语句首先会将符合条件的数据检索出来。这与SELECT语句的检索方法相似,只是在数据上的锁会有一些差异。在SQL Server中,UPDATE语句会优先对数据添加更新锁(即Update Lock,后续将在介绍事务和锁的时候详
UPDATE语句,将修改符合条件的数据行。UPDATE语句将SET子句中对应指定的字段修改为=后面的值,示例如下:UPDATE Sales CustomerSET StoreID=933WHERE CustomerID=1上面示例中的语句,会将CustomerId为1的Cust
在进行统计之前,分组统计需要先对数据进行分类。分类也需要使用排序算法,因此,上一节谈到的对排序的优化,对GROUP BY同样有效。更详细的性能分析和调优,将在讲解执行计划时分析。GROUP BY和DISTINCT需要进
DISTINCT关键字所实现的功能其实就是对指定查询字段的一次GROUP BY,从本质上来说,DISTINCT就是一个全字段的GROUP BY。例如,代码清单3-6和代码清单3-7中所示的两条语句,其最终返回的结果是一样的。代码清单
汇总计算通常是指根据指定的分组字段逐行进行汇总,例如,在代码清单3-5中将通过GROUP BY子句对订单的折扣信息进行平均计算,获得每个产品的平均折扣价格。代码清单3-5 计算每个产品的平均折扣价格SELECTsod P
汇总指根据选定行的数据属性使用GROUP BY子句进行分组,并应用指定函数规则对数据进行聚合,从而实现分组统计的功能。汇总功能子句通常伴随着排序和聚合操作。下面将在介绍执行计划时详细讲解排序和聚合的内部原
首先来了解Tempdb。Tempdb是SQL Server的一个系统数据库,用于存储查询过程中产生的中间数据。例如排序过程中,进行高速排序时产生的中间结果,被存储在Tempdb的数据文件中。在进行排序操作时,如果工作区内存(
ORDER BY子句的性能取决于参与排序操作的数据量的大小。排序操作会在数据筛选完以后,对筛选出的结果集进行排序。因此,对于需要排序的查询,应将排序操作控制在结果集数据量尽量小的查询中,避免对大批量数据进
3 3 使用排序子句3 3 1 排序子句排序子句,即ORDER BY子句,主要用来对查询返回的数据集进行排序。通过ORDER BY子句,可以指定以若干字段进行升降或降序排序(使用ASC或DESC关键字,比如,代码清单3-3采用的
上面提到代码清单3-1中的代码存在一些性能问题,接下来分析这条语句究竟在什么地方存在性能问题。1 未实现只查询出需要的字段如3 2 1节提到的,在编写查询语句时,应避免使用SELECT *这样的语句。只查询出需要的
3 2 使用查询语句3 2 1 SELECT语句SELECT语法由以下几个部分组成:查询的数据来自什么表。需要查询该表中的哪些属性,即查询该表的什么字段。查询出符合哪些特定条件的数据,即只过滤出符合条件的数据。对数据
什么是健壮的T-SQL语句?在这里,健壮的定义跟程序中的定义可能会有一些差异,但是目的是一样的,那便是令代码更稳定、更高效地执行。想要使T-SQL代码更健壮,需要对T-SQL的语法行为有较深入的了解,这样才能更准
第2章介绍了影响数据库性能的几个因素。这章将结合笔者的编码及调优经验,介绍T-SQL的一些编码习惯及规范,并且对常用的几个SQL语法进行性能上的分析,使读者们能更好地理解T-SQL的行为。编码习惯及规范是极为重
本章是一个概括章节,简要介绍了影响数据库服务器性能的几个主要因素。包括硬件、软件,以及编码、设计上的一些注意事项。在绝大多数情况下,数据库性能不佳都是由于设计及编码引起的。在后续的章节中,将对本章
简单SQL语句,它可以定义为:只简单地存在2~4个表的关联,或者只是单表查询。没有复杂的过滤条件,只有2~3个条件判断,并且有一个过滤条件明确(即使用等号),可以使用索引查找操作。使用简单语句,尽量不要使
2 5 T-SQL语句的编写2 5 1 编写T-SQL语句的注意事项及小窍门无论是DBA还是开发人员,在使用数据库时,不可避免地需要编写SQL语句。这里将针对语句的编写分享一些注意事项及小窍门,在后续的章节中,将会涉及这
字段冗余是避免过多表关联的常用手段。但是冗余带来的一个问题就是维护上的成本提升,所以在添加冗余字段前,不妨多做些权衡,想清楚是避免关联查询带来的好处多,还是维护成本高带来的坏处多。例如:某个查询是