<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT公司面试手册 &#187; SQL Server</title>
	<atom:link href="http://www.mianwww.com/html/category/it-interview/sqlserver/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mianwww.com</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 11:48:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>sql server dba 面试笔试问题</title>
		<link>http://www.mianwww.com/html/2012/02/13019.html</link>
		<comments>http://www.mianwww.com/html/2012/02/13019.html#comments</comments>
		<pubDate>Fri, 03 Feb 2012 12:49:18 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=13019</guid>
		<description><![CDATA[很多开发人员都想成为一名DBA，也有很多人一开始就把自己定位成为一名DBA，DBA究竟需要掌握些什么知识和技能呢?以下是我做DBA工作和面试DBA时，整理的一些DBA方面的三十个问题，三十个大问题中还有许多小的问题，涵括了SQLServer DBA比较多的技术知识点，与大家分享下，希望给有志做DBA的朋友们一些帮助： 1. char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法，哪个效率高;使用存储过程和使用T-SQL查询数据有啥不一样; 2. 系统DB有哪些，都有什么作用，需不需要做备份，为什么;损坏了如何做还原(主要是master库); 3. 有哪些操作会使用到TempDB;如果TempDB异常变大，可能的原因是什么，该如何处理; 4. Index有哪些类型，它们的区别和实现原理是什么，索引有啥优点和缺点;如何为SQL语句创建合适的索引，索引创建时有哪些需要注意的项，如何查看你创建的索引是否被使用;如何维护索引;索引损坏如何检查，怎么修复;T-SQL有更好的索引存在，但是运行时并没有使用该索引，原因可能是什么; 5. 视图上我们能建索引吗，如果能建的话，会啥好处和坏处;视图上建索引和表上建索引有啥区别; 6. Job信息我们可以通过哪些表获取;系统正在运行的语句可以通过哪些视图获取;如何获取某个T-SQL语句的IO、Time等信息; 7. 在线系统，一个表有五千万记录，现在要你将其中的两千万条记录导入到另一台服务器的某个表中，导完后，需要将这两千万数据删除，你预备如何处理，优缺点是什么; 8. 数据库服务器报磁盘空间不足，你将如何应对，要求尽快恢复; 9. 临时表、表变量、CTE(公用表表达式)有啥区别和联系，保存位置有啥不一样，使用时如何决定选哪种; 10. SQLServer有哪些隔离级别，默认级别是哪个;数据库有哪些主要的锁类型;行版本控制是如何实现的; 11. 死锁如何跟踪;阻塞如何跟踪和查找;发现有问题的语句后，如何进行处理;用Profile做跟踪时，一般我们需要跟踪哪些事件; 12. Windows日志主要有哪几种，SQLServer日志一般保留几个，什么情况下会产生新的SQL日志;数据库日志恢复模式有哪几种，区别是什么;数据库日志突然变得很大，而且你无法收缩，可能的原因是什么，怎么查找原因，分别将如何处理; 13. 分区表和分区视图是什么概念，一般是在什么情况下使用，有啥好处; 14. 如何比较两个同结构的表数据的差异;如果表损坏了，如何修复;如何在备份文件有问题的情况下尽量还原数据;如何将一个表的Identity属性归零; 15. CheckPoint和LazyWriter区别;DDL Trigger 和 DML Trigger有啥用，区别是啥; 16. Mirroring 和Logshipping 的区别和使用场景;SQLServer的Mirroring与Oracle的哪像技术比较接近，它们的区别是啥; 17. Mirroring的搭建步骤，Mirroring三种模式区别，Mirroring 中同步和异步的原理和要求，搭建了Mirroring后，需要对数据库日志做什么处理; 18. Replication配置和使用场景;Replication有哪几种模式;PUSH和PULL有啥区别;搭建Replication后会产生一个什么库;报错时用什么来查看报错的具体语句，清理掉某个库的Replication使用什么语句，查看同步链信息主要通过哪些表; 19. Replication发布端的表能truncate吗，为什么;Replication Identity列如何处理、缺失字段错误如何处理、主键冲突错误如何处理、如何跳过指定的错误、订阅端表被删除了如何处理、大规模改动数据如何处理;某条同步链因为其中的某个表一次性改动数据很大造成同步链的严重延时，要求尽快恢复同步链，如何处理。 20. SSB(Service Broker)使用场景，如何创建，都会创建些什么对象，有啥优缺点，主要通过什么方式实现不同服务器之间的消息传递;可以通过哪些方式排错; 21. 跟踪数据库数据的变更有哪些方法，它们(CDC(Change Data Capture)、CT(Change [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/02/13019.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sql server中count(*),count(col),count(1)的区别</title>
		<link>http://www.mianwww.com/html/2012/01/12866.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12866.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:01:12 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12866</guid>
		<description><![CDATA[前言 记得很早以前就有人跟我说过，在使用count的时候要用count(1)而不要用count(*)，因为使用count(*)的时候会对所有的列进行扫描，相比而言count(1)不用扫描所有列，所以count(1)要快一些。当时是对这一结论深信不疑，虽然不知道为什么。今天正好有时间研究研究看count(*)和count(1)到底有没有性能差异。 我的测试环境是SQL Server 2005 SP2开发版。 在进行测试之前先建立一些测试的数据，代码如下： create table test(a int, b varchar(100)) go declare @n int set @n = 1 while @n &#60; 100000 begin if @n%3 = 0 insert into test values (@n, null) if @n%3 = 1 insert into test values (@n, str(@n)) if @n%3 = 2 insert into test values (@n, [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12866.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在数据文件自动增长时，自动增长是否会阻塞对文件的更新？</title>
		<link>http://www.mianwww.com/html/2011/05/9269.html</link>
		<comments>http://www.mianwww.com/html/2011/05/9269.html#comments</comments>
		<pubDate>Sat, 28 May 2011 09:39:06 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=9269</guid>
		<description><![CDATA[答： 不会，但是因为 SQL Server 阻塞了对分配页的更改，而分配页跟踪自动增长过程中所使用的文件部分，所以数据文件的自动增长阻塞了新扩展部分的分配。这些分配页是全局分配映射 (GAM) 和辅助 GAM (SGAM)。（请参阅 SQL Server Books Online-BOL 可以获得有关 GAM 和 SGAM 的详细信息。）因此，自动增长操作阻塞了扩展过程，因此其他操作无法使用扩展部分。例如，这种阻塞会影响需要分配新空间的 Insert 和 Update 操作。例如 Insert 和 Update 这样的操作必须等待自动增长操作完成后才能进行。自动增长不应该影响要收回现有未用空间的 Insert 操作，和使用原有空间执行的 Update 操作，以及将在页中留下自由空间的 Delete 操作。因为检索数据不会涉及任何新的空间分配，所以自动增长操作不会影响 Select 操作。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/05/9269.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限？</title>
		<link>http://www.mianwww.com/html/2011/05/9267.html</link>
		<comments>http://www.mianwww.com/html/2011/05/9267.html#comments</comments>
		<pubDate>Sat, 28 May 2011 09:38:14 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=9267</guid>
		<description><![CDATA[答： 出于安全原因需要这些权限。请考虑下列简单存储过程： USE pubs GO Create PROCEDURE GeneralSelect @TableName SYSNAME AS EXEC (&#8216;Select * FROM &#8216; + @TableName) GO 您可能希望您的存储过程发出一个与下面类似的调用： USE pubs EXEC GeneralSelect &#8216;authors&#8217; 但是，请考虑传送给存储过程的下列顺序： USE pubs EXEC GeneralSelect &#8216;authors Drop TABLE authors&#8217; 如果存储过程的创建者是 pubs 数据库中 db_owner 角色的成员，并且您的用户只需要对存储过程具有 EXECUTE ㄏ蓿蚋妹罱境?authors 表。SQL Server 通过要求用户证明具有对数据库对象（通过动态 SQL 语句引用的）的正确权限来保护数据免受未授权的操作。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/05/9267.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何在发生故障的节点上重新安装 SQL Server</title>
		<link>http://www.mianwww.com/html/2011/05/9265.html</link>
		<comments>http://www.mianwww.com/html/2011/05/9265.html#comments</comments>
		<pubDate>Sat, 28 May 2011 09:37:08 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=9265</guid>
		<description><![CDATA[问： SQL Server 2000 Enterprise Edition 将在两个群集服务器上同步安装 SQL Server 可执行文件和程序文件。如果其中一台服务器发生故障，应该如何重新构建服务器并在该节点上重新安装 SQL？ 答： 可以在 SQL Server Books Online 中查找 SQL Server 2000 群集过程。运行安装程序，从配置中删除失败节点，修复节点，然后重新运行安装程序。在将该节点添加回 SQL Server 2000 配置时，SQL Server 将对自身进行适当地重新安装并重新配置。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/05/9265.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>当我正在为表建立索引的时候，SQL Server 会禁止对表的访问吗？</title>
		<link>http://www.mianwww.com/html/2011/05/9263.html</link>
		<comments>http://www.mianwww.com/html/2011/05/9263.html#comments</comments>
		<pubDate>Sat, 28 May 2011 09:35:38 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=9263</guid>
		<description><![CDATA[答：在您建立索引时，SQL Server 不会禁止您对表进行读访问，除非您正在建立一个簇索引。然而，如果某人此时试图更新表中的数据，SQL Server 会禁止更新操作 &#8211; 不管您正在创建什么样的索引类型 &#8211; 因为您不能取得表级别的独占锁（IX lock）。独占锁会和Create INDEX 语句持有的共享锁发生冲突。 当SQL Server 完成了建立索引的操作后，它必须修改系统表来反映数据表的变化；两个最主要被修改的系统表是sysindexes 和 sysobjects 表。因为您没有使用“normal”SQL来建立索引，所以您不能对SQL Server的操作进行跟踪。 在最后一个阶段， 独占锁（IX lock）并不出现在数据表中，而是出现在系统表正在建立索引的相应数据表项上。 一般来说，最后这个阶段比较短，因为SQL Server已经对数据进行了排序并抽取了行指针（物理行定位符或簇索引键）。唯一剩下的任务就是修改系统表，这个过程很快。如果系统表上的独占锁还在，您不能执行任何查询操作，因为您不能从sysindexes 和 sysobjects系统表中读取出所需要的信息。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/05/9263.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server面试题</title>
		<link>http://www.mianwww.com/html/2011/05/9121.html</link>
		<comments>http://www.mianwww.com/html/2011/05/9121.html#comments</comments>
		<pubDate>Fri, 27 May 2011 10:05:24 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=9121</guid>
		<description><![CDATA[填空题（１空１分共２０分） 1、 如果设计的表不符合第二范式，可能会导致_______，________，_______。 2、 ＳＱＬ是由_______语言，________语言，_______语言组成。 3、 SQL Server在两个安全级上验证用户，分别是______________,_____________________。 4、 自定义函数由___________函数，_______________函数，___________________函数组成。 5、 备份策略的三种类型是__________备份，_______________备份，___________________备份组成。 6、 启动一个显式事务的语句为__________，提交事务的语句为__________，回滚事务的语句为__________ 7、 表的每一行在表中是惟一的实体属于__________完整性，使列的输入有效属于__________完整性，两个表的主关键字和外关键字的数据应该对应一致属于__________完整性。 简答题（共２０分） 1、 在帮助中[ ,...n ] 意思是什么？（４分） 2、 请简述一下第二范式（４分） 3、 现有1销售表，它们结构如下：（４分） id int (标识号) codno char(7) (商品编码) codname varchar(30) (商品名称) spec varchar(20) （商品规格） price numeric(10,2) （价格） sellnum int （销售数量） deptno char(3) （售出分店编码） selldate datetime （销售时间） 要求：写出查询销售时间段在2002-2-15日到2002-4-29之间，分店编码是01的所有记录。 ４、写一个存储过程，要求传入一个表名，返回该表的记录数（假设传入的表在数据库中都存在）（４分） ５、请简述UPDATE 触发器如何工作原理。（４分） 简答题：（共４０分） [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/05/9121.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Server面试题 面试要点</title>
		<link>http://www.mianwww.com/html/2011/04/8488.html</link>
		<comments>http://www.mianwww.com/html/2011/04/8488.html#comments</comments>
		<pubDate>Sun, 24 Apr 2011 13:20:16 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=8488</guid>
		<description><![CDATA[1. 1000人左右的企业——SQL Server 2000标准版，5000人左右的企业——SQL Server 2000企业版。 2. SQL Server 2000有几种安装方式？1）本地全新安装：家里装的一般就是这种，默认为系统用户，域用户也可以，但密码修改后会出问题，所以启动服务帐户的密码在安全性里改；2）本地升级安装；3）远程安装；4）无人值守安装。 3. 本地全新安装中身份验证模式分为：1）Windows身份验证模式；2）混合模式（Windows 身份验证和 SQL Server 身份验证）。 4. 安装后生成的组件有哪些？1）企业管理器2）事件探查器（跟踪）3）查询分析器（执行T-SQL语句）4）客户端网络实用工具5）联机丛书（帮助）。 1. SQL Server服务有哪几种？1）SQL Server服务（主服务）；2）SQL Server Agent服务；3）Microsoft Search（全文本检索引擎服务）；4）Distributed Transaction Coordinator（管理分布式事务服务）；5）MSSQL ServerADHelper服务（发布到活动目录）。1）和2）的每一个实例都要一一对应。 2. 如何管理服务？1）通过Windows 2000服务管理器管理；2）win2003管理工具——服务（自带）。另外，对服务可以进行启动、暂停、停止。暂停的作用是：已连接到服务器的用户可完成任务，但不允许有新的连接。 3. 对SQL Server服务进行管理的是企业管理器，管理时要注册；把企业管理器和服务器进行连接；也可以注册远程服务器。 4. 对SQL Server属性配置：1）常规2）内存3）处理器4）安全性5）还原6）服务器设置7）数据库设置8）复制9）Active Directory。（修改完后要重启。） 5. 客户机如何连接服务器？在客户机上安装仅客户端工具，再通过企业管理器去连接。 6. 客户机与服务器连接两种协议：TCP/IP协议和命名管道协议。 7. 如何提高访问服务器的安全性？1）修改端口（默认为1433）；2）删除命名管道。 1. 常见的数据库对象有哪些：表、索引、视图、存储过程、触发器、用户定义函数、数据库关系图、全文索引。 2. 数据库分类：系统数据库和用户数据库；数据库管理：创建、修改和查看。 3. 默认的系统数据库有哪些？1）master数据库（主）；2）tempdb数据库（临时）；3）model 数据库（模板）；4）msdb数据库（计划任务）；5）distribution数据库（发布）。 4. pubs和Northwind都是用户数据库。 5. 默认创建一个数据库，会生成哪些文件？1）主文件（.mdf），2）日志文件（.ldf），无次要文件（.ndf）。 [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/04/8488.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL SERVER面试资料</title>
		<link>http://www.mianwww.com/html/2010/03/7474.html</link>
		<comments>http://www.mianwww.com/html/2010/03/7474.html#comments</comments>
		<pubDate>Thu, 18 Mar 2010 08:37:28 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=7474</guid>
		<description><![CDATA[维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑？为什么? 答：尽可能用约束（包括CHECK、主键、唯一键、外键、非空字段）实现，这种方式的效率最好；其次用触发器，这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性；最后再考虑用自写业务逻辑实现，但这种方式效率最低、编程最复杂，当为下下之策。 什么是事务？什么是锁？ 答：事务是指一个工作单元，它包含了一组数据操作命令，并且所有的命令作为一个整体一起向系统提交或撤消请求操作，即这组命令要么都执行，要么都不执行。 锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件，防止用户访问，以维护数据安全或防止并发数据操作问题，锁可以保证事务的完整性和并发性。 什么是索引，有什么优点？ 答：索引象书的目录类似，索引使数据库程序无需扫描整个表，就可以在其中找到所需要的数据，索引包含了一个表中包含值的列表，其中包含了各个值的行所存储的位置，索引可以是单个或一组列，索引提供的表中数据的逻辑位置，合理划分索引能够大大提高数据库性能。 视图是什么？游标是什么？ 答：视图是一种虚拟表，虚拟表具有和物理表相同的功能，可以对虚拟表进行增该查操作，视图通常是一个或多个表的行或列的子集，视图的结果更容易理解（修改视图对基表不影响），获取数据更容易（相比多表查询更方便），限制数据检索（比如需要隐藏某些行或列），维护更方便。 游标对查询出来的结果集作为一个单元来有效的处理，游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、 什么是存储过程？有什么优点？ 答：存储过程是一组予编译的SQL语句，它的优点有1.允许模块化程序设计，就是说只需要创建一次过程，以后在程序中就可以调用该过程任意次。2.允许更快执行，如果某操作需要执行大量SQL语句或重复执行，存储过程比SQL语句执行的要快。3.减少网络流量，例如一个需要数百行的SQL代码的操作有一条执行语句完成，不需要在网络中发送数百行代码。4.更好的安全机制，对于没有权限执行存储过程的用户，也可授权他们执行存储过程。 什么是触发器？ 答：出发器是一种特殊类型的存储过程，出发器主要通过事件触发而被执行的，触发器的优点：1.强化约束，触发器能够提供比CHECK约束。2.跟踪变化，触发器可以跟踪数据库内的操作，从而不允许未经允许许可的更新和变化。3.联级运算，比如某个表上的触发器中包含对另一个表的数据操作，而该操作又导致该表上的触发器被触发。]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2010/03/7474.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>如何提高SQL Server的安全性？</title>
		<link>http://www.mianwww.com/html/2009/11/5894.html</link>
		<comments>http://www.mianwww.com/html/2009/11/5894.html#comments</comments>
		<pubDate>Fri, 20 Nov 2009 06:56:00 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=5894</guid>
		<description><![CDATA[1.安装最新的服务包 为了提高服务器安全性，最有效的一个方法就是升级到 SQL Server 2000 Service Pack 3a (SP3a)。要下载 SP3a，请访问SQL Server 2000 SP3a 页面。 另外，您还应该安装所有已发布的安全更新。要订阅新安全更新的通知，请访问产品安全通知页面。 2.使用 Microsoft 基线安全性分析器（MBSA）来评估服务器的安全性 MBSA 是一个扫描多种 Microsoft 产品的不安全配置的工具，包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)。它可以在本地运行，也可以通过网络运行。该工具针对下面问题对 SQL Server 安装进行检测： 过多的sysadmin固定服务器角色成员。 授予sysadmin以外的其他角色创建 CmdExec 作业的权利。 空的或简单的密码。 脆弱的身份验证模式。 授予管理员组过多的权利。 SQL Server数据目录中不正确的访问控制表(ACL)。 安装文件中使用纯文本的sa密码。 授予guest帐户过多的权利。 在同时是域控制器的系统中运行SQL Server。 所有人（Everyone）组的不正确配置，提供对特定注册表键的访问。 SQL Server 服务帐户的不正确配置。 没有安装必要的服务包和安全更新。 网络安全论坛 [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2009/11/5894.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

