SQL SERVER 面试题与答案
- 格式:pdf
- 大小:156.51 KB
- 文档页数:5
sqlserver面试题SQL Server面试题一、什么是SQL Server?SQL Server是一种关系型数据库管理系统(RDBMS),由微软公司开发和发布。
它是一个全面的数据库服务器,用于管理和存储大量的数据。
SQL Server支持结构化查询语言(SQL),以及存储过程、触发器和其他数据库操作。
二、SQL Server的主要功能有哪些?1. 数据管理:SQL Server可以用于创建、修改和删除数据库、表、视图和索引等对象,以及导入、导出和修改数据。
2. 数据安全:SQL Server提供了丰富的安全功能,包括用户身份验证、权限控制和数据加密等,以确保数据的机密性和完整性。
3. 数据备份和恢复:SQL Server支持数据库的备份和恢复操作,以防止数据丢失和错误。
4. 数据复制和同步:SQL Server可以通过复制和同步机制将数据复制到不同的数据库服务器,以实现高可用性和负载均衡。
5. 数据分析和报表:SQL Server支持数据分析和报表生成,以便用户可以从数据库中提取有用的信息和洞察力。
6. 性能优化:SQL Server提供了各种性能优化工具和技术,以确保数据库的高性能和响应能力。
三、请解释SQL Server中的主键和外键的作用。
主键是用于唯一标识数据库表中每条记录的一列或一组列。
它的作用是保证表中的每个记录都具有唯一的标识符,以方便数据的检索和修改。
主键还可以用于建立表与其他表之间的关系。
外键则用于建立表与其他表之间的关联关系。
外键是指表中的一列或一组列,它引用了另一张表的主键。
外键的作用是维护数据的完整性和一致性,通过约束来确保外键引用的数据必须存在于关联表中。
这样可以防止无效的数据插入或更新操作。
四、SQL Server中的事务是什么?请解释ACID属性。
事务是SQL Server中一系列数据库操作的逻辑单元,它要么全部执行成功,要么全部回滚到初始状态。
事务可以保证数据的一致性和完整性。
sql server数据库面试题1. 介绍SQL Server数据库SQL Server是一种关系型数据库管理系统,由Microsoft开发和维护。
它支持广泛的数据处理任务,在企业级应用程序和云环境中得到广泛应用。
2. 什么是SQL语言?SQL是结构化查询语言(Structured Query Language)的缩写,是用于管理关系型数据库的标准化语言。
它可以用于查询、插入、更新和删除数据库中的数据。
3. SQL Server数据库的主要特点是什么?- 可扩展性:SQL Server支持大规模数据处理,并且可以轻松扩展以适应不断增长的数据量。
- 安全性:SQL Server提供多层次的安全控制,包括用户认证、权限管理和数据加密。
- 高可用性:SQL Server支持故障转移、备份和恢复机制,确保数据始终可用。
- 强大的查询优化功能:SQL Server可以自动优化查询以提高性能,并且提供了各种工具来优化查询计划。
4. 什么是索引,为什么要使用索引?索引是一种数据结构,用于提高数据库查询的速度。
它们是基于一个或多个列的值来排序和组织数据的结构。
通过创建索引,可以减少数据库查询时需要扫描的数据量,从而提高查询性能。
5. 请列举一些SQL Server数据库常用的索引类型。
- 聚集索引(Clustered Index):该索引决定了表中数据的物理排序方式。
- 非聚集索引(Non-clustered Index):该索引不会改变表中数据的物理排序方式,而是创建一个单独的数据结构来提高查询性能。
- 全文索引(Full-Text Index):该索引用于对文本数据执行高效的全文搜索。
- 空间索引(Spatial Index):该索引用于对地理和几何数据执行高效的空间查询。
6. 请解释SQL Server数据库中的事务是什么?事务是一组数据库操作的逻辑单元,可以保证这些操作要么全部执行成功,要么全部失败。
事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
选择题:1、在“连接”组中有两种连接认证方式,其中在(_ B _)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQL Server身份验证C、以超级用户身份登录时D、其他方式登录时2、表在数据库中是一个非常重要的数据对象,它是用来(1_ C __)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2_ D__)等方法来创建。
⑴A、显示B、查询C、存放D、检索⑵A、企业管理器B、查询分析器C、OSQLD、企业管理器和CREATE TABLE语句3、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1_B_),使用关键字(2_A_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3__B_),如果在SELECT语句中使用集合函数时,一定在后面使用(4_A__)。
⑴A、SELECT,INTO B、SELECT,FROMC、SELECT,GROUPD、仅SELECT⑵A、DISTINCT B、UNIONC、ALL C、TOP⑶A、JOIN B、UNIONC、INTO C、LIKE⑷A、GROUP BY B、COMPUTE BYC、HAVINGD、COMPUTE4、在SQL SERVER服务器上,存储过程是一组预先定义并(1_B__)的Transact -SQL语句。
可以用(2__D_)来声明游标。
⑴A、保存B、编译C、解释D、编写⑵A、CREATE CURSOR B、ALTER CURSORC、SET CURSORD、DECLARE CURSOR简答题:1、自定义函数的类型?各自原返回值。
①标量函数返回值:单个数据值②内嵌表值函数返回值:table,③多语句表值函数返回值:table2、用户权限的种类有哪些?各自的作用?①对象权限作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限②语句权限作用:决定用户能否操作数据库和创建数据库对象③隐含权限作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。
sqlserver高级面试题SQL Server高级面试题1. 介绍SQL Server的架构和主要组件SQL Server是由微软开发的关系型数据库管理系统。
它的架构分为三个主要的组件:- 数据引擎:负责数据的存储、处理和查询。
它包含了查询处理器、事务管理器、存储引擎等模块。
- Analysis Services:提供了数据仓库和在线分析处理(OLAP)功能,用于数据分析和决策支持。
- Integration Services:用于数据抽取、转换和加载(ETL),支持数据仓库的构建和更新。
2. 请解释SQL Server中的索引和它的类型。
索引是用于提高查询性能的数据结构,它可以加快数据的检索速度。
SQL Server中的索引类型包括:- 聚集索引(Clustered Index):决定了数据行在表中物理上的存储顺序,一个表只能有一个聚集索引。
- 非聚集索引(Non-Clustered Index):创建在表的列上,它包含以下两种信息:索引键的值和指向该键所在行的指针。
- 唯一索引(Unique Index):与非聚集索引类似,但是要求索引的键值必须唯一。
- 全文索引(Full-Text Index):用于进行全文本搜索,可以对文本内容进行高效的关键字搜索。
3. 请列举一些提高SQL Server查询性能的方法。
- 创建合适的索引:通过分析查询语句中的WHERE和JOIN条件来确定需要创建的索引,以提高查询的速度。
- 避免使用SELECT *:只查询所需的列,减少不必要的数据传输和处理。
- 使用适当的数据类型:选择最合适的数据类型来存储数据,可以减少空间占用和提高查询速度。
- 数据库规范化:将数据分解为更小的表,以减少数据冗余和提高查询性能。
- 定期维护数据库:进行索引重建、统计信息更新、日志清理等操作,以保持数据库的优化状态。
4. 请解释SQL Server中的事务以及ACID属性。
事务是一组逻辑操作,这些操作要么全部成功执行,要么全部回滚。
为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名--实现代码:Select SN,SD FROM SWhere [S#] IN(Select [S#] FROM C,SCWhere C.[C#]=SC.[C#]AND CN=N'税收基础')2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位--实现代码:Select S.SN,S.SD FROM S,SCWhere S.[S#]=SC.[S#]AND SC.[C#]='C2'3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位--实现代码:Select SN,SD FROM SWhere [S#] NOT IN(Select [S#] FROM SCWhere [C#]='C5')4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位--实现代码:Select SN,SD FROM SWhere [S#] IN(Select [S#] FROM SCRIGHT JOINC ON SC.[C#]=C.[C#] GROUP BY [S#]HAVING COUNT(*)=COUNT([S#]))5. 查询选修了课程的学员人数--实现代码:Select 学员人数=COUNT(DISTINCT [S#]) FROM SC6. 查询选修课程超过5门的学员学号和所属单位--实现代码:Select SN,SD FROM SWhere [S#] IN(Select [S#] FROM SCGROUP BY [S#]HAVING COUNT(DISTINCT [C#])>5)题目2问题描述:已知关系模式:S (SNO,SNAME) 学生关系。
sqlserver面试题SQL Server面试题1. 简介SQL Server是由微软公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业级应用程序、数据仓库以及一系列Web 应用程序中。
在SQL Server的面试过程中,面试官通常会涉及各个方面的知识,包括SQL语法、数据库设计与优化、性能调优、高可用性等。
以下是一些常见的SQL Server面试题及其解答,希望能对您的面试准备有所帮助。
2. SQL基础2.1 SELECT语句在SQL Server中,SELECT语句用于从表中检索数据。
如果要查询一个表中的所有列,可以使用以下语法:SELECT * FROM 表名;如果只需要查询特定的列,可以使用以下语法:SELECT 列名1, 列名2 FROM 表名;2.2 WHERE子句WHERE子句用于指定查询时的条件,可以根据条件过滤出符合要求的行。
例如:SELECT 列名1, 列名2 FROM 表名 WHERE 条件;2.3 ORDER BY子句ORDER BY子句用于按照指定的列对查询结果进行排序,默认情况下是升序排序。
例如:SELECT 列名1, 列名2 FROM 表名 ORDER BY 列名;2.4 GROUP BY子句GROUP BY子句用于按照指定的列对查询结果进行分组。
例如: SELECT 列名1, 列名2 FROM 表名 GROUP BY 列名;3. 数据库设计与优化3.1 范式和反范式范式是用来评估数据库设计是否合理的一种标准。
常见的范式有第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
范式化的设计可以提高数据的一致性和减少冗余,但也会增加查询的复杂度。
反范式化是根据实际需求和性能考虑,对数据库进行冗余设计,以提高查询性能。
3.2 索引的优化索引是提高查询性能的重要手段。
在SQL Server中,可以通过CREATE INDEX语句创建索引。
合理选择索引列、避免过多的索引以及定期维护索引可以提高查询性能。
1.在数据库技术中,独立于计算机系统的模型是E-R模型。
2.数据库系统的控制中枢是数据库管理系统。
3.使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令式UPDATE STUDENT SET AGE=AGE+1.4.在关系数据库中,建立数据库表时,将年龄字段值限制在12—40岁之间的这种约束属于域完整性约束。
5.在SQL语句中,与x BETWEEN 20 AND 30 等价的表达式是x>=20 and x<=306.在数据库中,概念模型是用于信息世界的建模,与具体的DBMS无关。
7.在关系数据库中,模式对应的是视图和所有基本表。
8.数据库的并发操作可能带来的问题包括丢失更新。
9.能实现绝对的与平台无关性的web数据库访问技术是JDBC。
10.SQL是集合操作方式。
11.数据库系统是由数据库组成的。
12.在SQL查询时,使用WHERE子句指出的是查询条件。
13.在RDMBS产品中,属于小型数据库系统的是ACCESS。
14.数据库类型是按照数据模型来划分的。
15.数据库管理系统更适合于数据处理方面的应用。
16.CREATE,DROP,GRANT全部属于数据定义语句的命令。
17.用过INTERNET及浏览器处理的数据库,应该是主从结构式处理。
18.数据的逻辑独立性是指数据与程序的逻辑独立性。
19.关系代数的三个基本运算时连接,投影,选择20.用二维表来表示实体及实体之间联系的数据模型称为关系模型。
21.在基本SQL中不可以实现并发控制。
22.数据库镜像可以用于进行数据库恢复或并发操作。
23.在数据库系统中,应用最广泛的是关系型数据库系统。
填空题(1空1分共20分)1、如果设计的表不符合第二范式,可能会导致_______,________,_______。
2、SQL是由_______语言,________语言,_______语言组成。
3、SQL Server在两个安全级上验证用户,分别是______________,_____________________。
sql server基础面试题SQL Server是微软开发的关系型数据库管理系统,以下是一些SQL Server 的基础面试题:1. 什么是SQL Server,它与数据库的关系是什么?2. 在SQL Server中,如何创建一个新的数据库?3. 描述一下SQL Server的存储过程是什么,以及它的用途是什么?4. 在SQL Server中,触发器的作用是什么?5. 什么是索引,它在SQL Server中有什么作用?6. 解释一下SQL Server中的事务处理,以及如何使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句?7. 如何优化SQL Server查询性能?8. 如何在SQL Server中设置和使用视图?9. 如何备份和恢复SQL Server数据库?10. 解释一下SQL Server中的游标是什么,以及何时应该使用游标?11. 如何使用SQL Server中的存储过程和函数来处理日期和时间?12. 描述一下SQL Server中的数据完整性概念,以及如何实现它?13. 如何使用SQL Server中的系统函数和系统存储过程?14. 解释一下SQL Server中的复制和发布功能,以及它们的应用场景?15. 如何管理和维护SQL Server数据库?16. 描述一下SQL Server中的系统表和动态管理视图(DMVs),以及它们的作用是什么?17. 如何使用SQL Server中的分区表和索引?18. 解释一下SQL Server中的全文搜索功能,以及如何使用它进行文本搜索?19. 如何使用SQL Server中的报表服务来生成报表?20. 描述一下SQL Server中的CLR集成,以及如何使用它来编写和执行CLR存储过程和函数?。
sql server面试题SQL Server是一种关系型数据库管理系统(RDBMS),被广泛应用于企业级应用程序开发和数据管理。
为了帮助您准备就业面试或升职面试,以下是一些常见的SQL Server面试题及其答案。
1. 什么是SQL Server?它的功能是什么?SQL Server是一种由Microsoft开发的关系型数据库管理系统,用于管理和存储数据。
它提供了数据的安全性、完整性和可靠性,并具备高效的数据检索和处理功能。
SQL Server支持多种编程语言和操作系统,并提供了丰富的管理工具和功能,如备份和还原、复制和高可用性。
2. SQL Server中的主要数据类型有哪些?SQL Server支持多种数据类型,包括整数类型(int、bigint、smallint)、浮点数类型(float、real、decimal)、日期和时间类型(datetime、date、time)、字符串类型(varchar、char、text)等。
3. 什么是索引?SQL Server中的索引类型有哪些?索引是一种用于加快数据检索速度的数据结构。
SQL Server中的索引类型包括聚集索引(clustered index)和非聚集索引(non-clustered index)。
聚集索引决定了物理存储顺序,而非聚集索引是一种单独的数据结构,它包含指向实际数据行的指针。
4. 如何优化SQL Server查询性能?优化SQL Server查询性能有多种方法,包括创建适当的索引、使用正确的JOIN操作、避免使用通配符、避免在WHERE子句中对函数进行计算等。
可以使用SQL Server的性能监视器(Performance Monitor)来监视数据库服务器的性能,并采取相应的优化措施。
5. SQL Server中如何执行事务处理?在SQL Server中,可以使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句来执行事务处理。
SqlServer面试题及答案1.磁盘柜上有14块73G的磁盘,数据库为200G 大小包括日志文件,如何设置磁盘(要说明这14磁盘是怎么用的)?2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。
3.有一个A 数据库,分别复制到B和C B 要求每次数据更新也同时更新,C 每天更新一次就行,如何制定复制策略!4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个索引字段超过10个,如何进行优化5.有一个数据库200G大小,每天增加50M 允许用户随时访问,制定备份策略(详细说明)。
参考答案:1.磁盘柜上有14块73G的磁盘,数据库为200G 大小包括日志文件,如何设置磁盘(要说明这14磁盘是怎么用的)?这个问题应该是考察硬件知识和数据库物理部署。
首先需要知道这些磁盘是否要用于存放数据库备份文件和数据库性能(读/写)要求。
来决定raid的级别。
1)、如果偏重于性能考虑,而且不用存放数据库备份文件的话,考虑使用raid0 1,这样可使用的磁盘容量为:14*73*50%=511G。
2)、如果读/写性能要求不高,而且还比较抠门的话,可以考虑raid5,这样可使用的磁盘容量为:13*73=949G。
至于如何使用应该是说数据库物理文件的部署。
注意说出将tempdb,data file,log file分开存放以减少I/O竞争即可。
其实现在的条带化磁盘一般都会自动将文件分存,人为的分布已经越来越不重要了。
2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。
这个具体操作有点忘了。
大致是:首先看哪个节点正在使用,通过节点IP(私有)访问另一个空闲节点,为其打上补丁,然后在群集管理器中停止该节点(也可以用命令行方式),重新启动。
等到启动完毕,将切换使用节点,为另一个节点打补丁。
然后重新启动。
3.有一个A 数据库,分别复制到B和C B 要求每次数据更新也同时更新,C 每天更新一次就行,如何制定复制策略!这个应该考察的是复制知识。
a->B1)、如果使用SQL Server复制功能,那么让a->b使用事务性复制方式(同步复制)。
2)、如果表不多,也可以自己写触发器,利用linkserver distribute transaction。
a->C1)、如果使用SQL Server复制功能,那么让a->b使用快照复制方式,在某一时间点进行一次性复制。
2)、也可以自己写bat,将a备份后,通过ftp传输备份介质,恢复c。
(比较麻烦,不推荐)4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个索引字段超过10个,如何进行优化这个问题问的比较没水平。
你不详细说明这个表的使用方式(读写类的,还是几乎是静态表),就问人家怎么优化?!!还不如问问索引的分布访问原理更好。
看得出他就想让你说:那三个索引超过10个,B树遍例效率很低,适当减少字段数目。
如果是SQL2005,可以将选择性不好的字段放在“索引附加字段”中,以保证索引覆盖。
而且SQL Server由于有锁升级的毛病,可以考虑拆开表。
5.有一个数据库200G大小,每天增加50M 允许用户随时访问,制定备份策略(详细说明)。
这种情况可以采用增量备份方式。
每周日做一次全备份,周一到周六作增量备份(由于数据量较少,可以考虑每30分钟增量备份一次)。
这样可以尽量减少性能消耗,而且如果transaction log丢失的情况下,可以保证最多丢失30分钟数据。
2. 6.管理50台数据库,日常工作是检查数据库作业是否完成,你该如何完成这项检查工作?7.自定义函数和存储过程的区别是什么,什么情况下只能用自定义函数,什么情况下只能用存储过程参考答案:6.管理50台数据库,日常工作是检查数据库作业是否完成,你该如何完成这项检查工作?这个比较简单。
在每台机器上建立linkserver,然后在DBA管理服务器上做个分布式视图,每次查询该视图,各个机器上的作业情况一目了然。
分布式视图写法:create view vw_joBasselect '机器一' as MName,* from linkserver1..sysjobactivityunion allselect '机器二' as MName,* from linkserver2..sysjobactivityunion allselect '机器三' as MName,* from linkserver3..sysjobactivity7.自定义函数和存储过程的区别是什么,什么情况下只能用自定义函数,什么情况下只能用存储过程这个应该是考察存储过程编写经验。
一般自定义函数主要用于其他sql中的调用,如:select yourfunc(...) from tablE这种情况下,一般只能通过函数实现。
存储过程的功能要远远强于函数,例如动态执行sql(sp_executesql)的使用和一些特殊的功能,自定义函数中是不支持的,只能用存储过程实现。
3.8.SQL 2005 的新特性是什么?与oracle 有什么区别?9.DBA 的品质应该有哪些,你有哪些,有什么欠缺的?10.如果想配置SQL Mail 应该在服务器安装哪些软件!参考答案:8.SQL 2005 的新特性是什么?与oracle 有什么区别?SQL 2005 的新特性一般都是和Oracle学的。
4.一、数据库设计方面1、字段类型。
varchar(max)\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
但是这就引发了对varchar和char效率讨论的老问题。
到底如何分配varchar的数据,是否会出现大规模的碎片?是否碎片会引发效率问题?这都是需要进一步探讨的东西。
varbinary(max)代替image也让SQL Server的字段类型更加简洁统一。
XML字段类型更好的解决了XML数据的操作。
XQuery确实不错,但是个人对其没好感。
(CSDN的开发者应该是相当的熟了!)2、外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
但是再开发调试阶段和OLAP环境中,外键是可以建立的。
新版本中加入了SET NULL 和 SET DEFAULT 属性,能够提供能好的级联设置。
3、索引附加字段这是一个不错的新特性。
虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。
我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
4、计算字段的持久化原来的计算字段其实和虚拟字段很像。
只是管理方面好了而已,性能方面提高不多。
但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。
OLTP慎用。
OLAP可以大规模使用。
5、分区表分区表是个亮点!从分区表也能看出微软要做大作强SQL Server的信心。
资料很多,这里不详细说。
但是重点了解的是:现在的SQL Server2005的表,都是默认为分区表的。
因为它要支持滑动窗口的这个特性。
这种特性对历史数据和实时数据的处理是很有帮助的。
但是需要注意的一点,也是我使用过程中发现的一个问题。
在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。
这一点很让我纳闷。
如果你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。
不知道这算不算一个bug。
大家也可以试试。
分区表效率问题肯定是大家关心的问题。
在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。
但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。
(500万数量级只相差10%左右)6、CLR类型微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。
最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
但是作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。
但是现在有哪些系统大批使用了java 存储过程?!连Oracle自己的应用都不用为什么?!还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。
如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
或者是要和操作系统进行Socket通讯的场景。
否则建议慎重!7、索引视图索引视图2k就有。
但是2005对其效率作了一些改进但是schema.viewname 的作用域真是太限制了它的应用面。
还有一大堆的环境参数和种种限制都让人对它有点却步。
8、语句和事务快照语句级快照和事务级快照终于为SQL Server的并发性能带来了突破。
个人感觉语句级快照大家应该应用。
事务级快照,如果是高并发系统还要慎用。
如果一个用户总是被提示修改不成功要求重试时,会杀人的!9、数据库快照原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。
但是比起Oracle10g的闪回技术还是细粒度不够。
可惜!10、MirrorMirror可以算是SQL Server的Data guard了。
但是能不能被大伙用起来就不知道了。
二、开发方面1、Ranking函数集其中最有名的应该是row_number了。
这个终于解决了用临时表生成序列号的历史,而且SQL Server2005的row_number比Oracle的更先进。
因为它把Order by集成到了一起,不用像Oracle那样还要用子查询进行封装。
但是大家注意一点。
如下面的例子:select ROW_NUMBER() OVER (order by aa)from tblorder by bB会先执行aa的排序,然后再进行bb的排序。
可能有的朋友会抱怨集成的order by,其实如果使用ranking函数,Order by 是少不了的。