WEB开发网
开发学院数据库MSSQL Server SQL开发中容易忽视的一些小地方(一) 阅读

SQL开发中容易忽视的一些小地方(一)

 2010-04-28 15:42:44 来源:WEB开发网   
核心提示:我的观点:联接查询的时间复杂度并不是固定的,更不能说是由两种表现方式不同而决定的.join在查询的算法根据联接表的不同分三种情况:第一种算法:NESTED LOOP:定义:对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择,SQL开发中容易忽视的一些小地方(一)(5),在嵌套循环中,内表被外表驱动,外表返回的每

我的观点:联接查询的时间复杂度并不是固定的,更不能说是由两种表现方式不同而决定的.join在查询的算法根据联接表的不同分三种情况:

第一种算法:NESTED LOOP:

定义:对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择。在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大(大于1 万不适合),要把返回子集较小表的作为外表。

示例:上面有了一个班级表,下面我再创建一个班级课程表,

CREATE TABLE [dbo].[course](
[ID] [int] IDENTITY(1,1) NOT NULL,
[sCourseName] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,--课程名称
[classID] [int] NULL,--所属班级ID
CONSTRAINT [PK_CKH] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
业务需求:查询所有班级对应的课程情况.

select sCourseName,sClassName from classInfo a
inner join course b

on a.classID=b.classID

执行计划效果图:

上一页  1 2 3 4 5 

Tags:SQL 开发 容易

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接