DataBase
文章平均质量分 81
lileiprc
好好工作,认真生活。。。
展开
-
SQL 面试题
一. Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score转载 2010-11-04 12:20:00 · 918 阅读 · 0 评论 -
SQL Server 索引结构及其使用(二)
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如: select * from table1 where name=''zhangsan'' and tID > 10000和执行:select * from table1 where tID > 10000 and name=''zhangsan'' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句转载 2010-11-04 08:45:00 · 357 阅读 · 0 评论 -
EXEC和sp_executesql 区别
1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用 sp_executesql转载 2010-11-03 13:29:00 · 316 阅读 · 0 评论 -
SQL Server 索引结构及其使用(一)
一、深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,转载 2010-11-04 08:44:00 · 373 阅读 · 0 评论 -
SQL Server 索引结构及其使用(三)
实现小数据量和海量数据的通用分页显示存储过程 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合转载 2010-11-04 08:46:00 · 444 阅读 · 0 评论 -
SQL Server 索引结构及其使用(四)
在上一节的标题中,笔者写的是:实现小数据量和海量数据的通用分页显示存储过程。这是因为在将本存储过程应用于“办公自动化”系统的实践中时,笔者发现这第三种存储过程在小数据量的情况下,有如下现象:1、分页速度一般维持在1秒和3秒之间。2、在查询最后一页时,速度一般为5秒至8秒,哪怕分页总数只有3页或30万页。 虽然在超大容量情况下,这个分页的实现过程是很快的,但在分前几页时,这个1-3秒的速度比起第一种甚至没有经过优化的分页方法速度还要慢,借用户的话说就是“还没有ACCESS数据库速转载 2010-11-04 08:47:00 · 299 阅读 · 0 评论 -
SQL中使用WITH AS提高性能-使用公用表表达式(CTE)简化嵌套SQL
<br />一.WITH AS的含义<br /> WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。 <br />特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高,所以可以使用WITH AS短语,则只要执行一遍即可。如果转载 2010-11-11 13:33:00 · 395 阅读 · 0 评论 -
公用表表达式(CTE)的递归调用
<br />先看如下一个数据表(t_tree):<br /> <br /> 上图显示了一个表中的数据,这个表有三个字段:id、node_name、parent_id。实际上,这个表中保存了一个树型结构,分三层:省、市、区。其中id表示当前省、市或区的id号、node_name表示名称、parent_id表示节点的父节点的id。<br /> 现在有一个需求,要查询出某个省下面的所有市和区(查询结果包含省)。如果只使用SQL语句来实现,需要使用到游标、临时表等技术。但在SQL Server2005中转载 2010-11-11 13:34:00 · 865 阅读 · 1 评论 -
sql中嵌套游标
今天有人询问游标是否可以嵌套使用的问题,因为用于标识游标是否已经达到数据集结尾的标志值@@FETCH_STATUS是一个全局变量,那么如果出现游标嵌套的话可能造成内侧的游标完成数据集遍历以后导致外侧游标的无法再循环读取下一行的数据。先来看看SQL Server 2000中联机帮助的内容: @@FETCH_STATUS返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。返回值描述0FETCH 语句成功。-1FETCH 语句失败或此行不在结果集中。-2被提取的行不存在。语法@转载 2010-11-19 16:41:00 · 1105 阅读 · 0 评论