前言
上一篇《浅析SQL Server 聚焦索引对非聚集索引的影响》我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解。
透过索引来看查询执行计划
我们首先来看看第一个例子
1、默认使用索引
USE TSQL2012
GO
SELECT orderid
FROM Sales.Orders
SELECT *
FROM Sales.Orders
上述我们看到第2个查询的所需要的开销是第1个查询开销的3
前言
上一节我们讲解了数据类型以及字符串中几个需要注意的地方,这节我们继续讲讲字符串行数同时也讲其他内容和穿插的内容,简短的内容,深入的讲解。(可参看文章《详解SQL Server中的数据类型》)
分页方式
在SQL 2005或者SQL 2008中我们是利用ROW_NUMBER开窗函数来进行分页的,关于开窗函数,我们在SQL进阶中会详细讲讲。如下:
USE TSQL2012
GO
DECLARE StartRow INT
DECLARE EndRow INT
SET StartRow = 31
前言
本节我们讲讲一些简单查询语句示例以及需要注意的地方,简短的内容,深入的理解。
EOMONTH
在SQL Server 2012的教程示例中,对于Sales.Orders表的查询,需要返回每月最后一天的订单。我们普遍的查询如下
USE TSQL2012
GO
SELECT orderid, orderdate, custid, empid
FROM Sales.Orders
WHERE orderdate = DATEADD(MONTH, DATEDIFF(MONTH, '19991231
前言
本节我们再来穿插讲讲索引知识,后续再讲数据类型中的日期类型,简短的内容,深入的理解。
强制索引查询条件
前面我们也讲了一点强制索引查询的知识,本节我们再来完整的讲述下
(1)SQL Server使用默认索引
USE TSQL2012
GO
SELECT *
FROM Sales.Orders
上述就不用我再啰嗦了,使用默认主键创建的聚集索引来执行查询执行计划。
(2)SQL Server使用强制索引
USE TSQL2012
GO
SELECT custid
FROM Sales.O