07 2012 档案

摘要:参考文献:http://technet.microsoft.com/en-us/library/ms188388.aspx正文本文主要讲解如何使用alter index来rebuild和reorganize索引来清除碎片,rebuild能够完全清除碎片,但是reorganize却不能。Rebuild index--1.准备实验数据select * into Employee from AdventureWorks2008R2.HumanResources.Employee;--2.查看使用空间:Employee 290 72 KB 56 KB 8 KB ... 阅读全文
posted @ 2012-07-31 21:07 xwdreamer 阅读(6342) 评论(0) 推荐(0) 编辑
摘要:在SQL Server标准的已提交读(READ COMMITTED)隔离级别下,一个读操作会和一个写操作相互阻塞。未提交读(READ UNCOMMITTED)虽然不会有这种阻塞,但是读操作可能会读到脏数据,这是大部分用户不能接受的。有些关系型数据库(例如Oracle)使用的是另一种处理方式。在任何一个修改之前,先对修改前的版本做一个复制[WX1],后续的一切读操作都会去读这个复制的版本,修改将创建一个新的版本。在这种处理方式下,读、写操作不会相互阻塞。使用这种行版本控制机制的好处,是程序的并发性比较高,但是缺点是用户读到的虽然不是一个脏数据,但是可能是个正在被修改马上就要过期的数据值[WX.. 阅读全文
posted @ 2012-07-30 15:39 xwdreamer 阅读(9188) 评论(4) 推荐(5) 编辑
摘要:1. What is the structure of a table when it does not have index and have index?1.1.Table OrganizationThe following illustration shows the organization of a table. A table is contained in one or more partitions and each partition contains data rows in either a heap or a clustered index structure. The 阅读全文
posted @ 2012-07-30 11:57 xwdreamer 阅读(2937) 评论(0) 推荐(1) 编辑
摘要:误区一直以为只要一个表含有聚集索引,那么在data page中的数据行是排序的。比如原来data page中有1.2.4.5.6这样四条记录,那么我要插入3这条记录,应该是先将456三条记录往后移,然后再插入3这条记录。这样的理解是错误的。正解首先从上面的数据行插入说起,如果要移动后面的记录来插入中间的记录,这么会影响性能,这是不允许的。sql server肯定有其他办法来实现有序。今天读inside sql server 2005第七章的时候才明白,其实data page内的数据可以无序,但是可以通过data page中的OFFSET TABLE实现有序。实验我们需要创建一个测试表,并在一个 阅读全文
posted @ 2012-07-30 00:50 xwdreamer 阅读(742) 评论(0) 推荐(0) 编辑
摘要:0.参考文献http://msdn.microsoft.com/zh-cn/library/ms172984(SQL.90).aspx1.实验数据我们将利用AdvantureWords2008R2中的Sales.SalesOrderDetail表,其中有12万条数据,非常适合用于测试。不过我们不直接在这张表上做测试,因为这张表上已经有索引了。我们需要新建一张表,将该表中的数据导入我们新建的test和test2表。test和test2的创建方法有两种,我们选择第二种。View Code --实验1:使用INSERT INTO tablename(col1,col2...) SELECT 往已存在 阅读全文
posted @ 2012-07-19 16:09 xwdreamer 阅读(6384) 评论(0) 推荐(0) 编辑
摘要:引用:http://msdn.microsoft.com/en-us/library/ms190969(SQL.105).aspx正文An Index Allocation Map (IAM) page maps the extents in a 4-gigabyte (GB) part of a database file used by an allocation unit. An allocation unit is one of three types(allocation unit 有三种类型,分别是IN_ROW_DATA,LOB_DATA,ROW_OVERFLOW_DATA):IN 阅读全文
posted @ 2012-07-19 13:31 xwdreamer 阅读(1346) 评论(0) 推荐(0) 编辑
摘要:参考文献Difference between an Index and a Primary Key本质区别首先primary key跟unique都是Constraints,属于logical object,而index则是physical object,会占用index page并被保存在磁盘上。Primary key Constraints和unique ConstraintsPrimary key Constraints和unique Constraints都需要保证列是唯一的,不能有重复值,但是一张表只能有一个Primary key Constraints,但是可以有多个unique 阅读全文
posted @ 2012-07-19 10:08 xwdreamer 阅读(7115) 评论(0) 推荐(3) 编辑
摘要:前言在阅读之前可以参考之前的一篇博客:通过DBCC IND分析表组织和索引组织1.DBCC PAGE基础page是sql server中最小的IO单位,在数据库中如果我们只是查询一行记录,也会读取这一行所在的整个页信息。那么page里面是如何存储信息的呢?我们可以通过dbcc page解析页的相信信息。当我们知道page是如何存储数据以后,对于我们后面解析聚集索引和非聚集索引的叶子节点非常有帮助。因为聚集索引的叶子节点是data page,那么我们dbcc page聚集索引的叶子节点,得到的应该就是真实的数据。如果我们dbcc pag非聚集索引的叶子节点,得到的可能是聚集索引的键值,也可能得到 阅读全文
posted @ 2012-07-18 10:42 xwdreamer 阅读(3805) 评论(7) 推荐(5) 编辑
摘要:0.参考文献:Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)利用DBCC PAGE查看SQL Server中的表和索引数据1.DBCC IND跟DBCC PAGE简介1.1.DBCC IND命令DBCC IND ( { 'dbname' | dbid }, { 'objname' | objid }, { nonclustered indid | 1 | 0 | -1 | -2 } [, partition_number] )1.2.DBCC输出字段描述Column(列)Meaning(含义)PageFID索引所在文件IDPag 阅读全文
posted @ 2012-07-17 21:13 xwdreamer 阅读(3338) 评论(2) 推荐(3) 编辑
摘要:0.参考文献SELECT INTO 和 INSERT INTO SELECT 两种表复制语句1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下: --1.创建表 create table OrderDetail2 ( SalesOrderDetailID int primary key not nu... 阅读全文
posted @ 2012-07-17 09:42 xwdreamer 阅读(1252) 评论(0) 推荐(0) 编辑
摘要:sql server会在一下三种情况下认为你不需要维护日志备份:使用BACKUP LOG WITH NO_LOG 或者 BACKUP LOG WITH TRUNCATE_ONLY来进行日志备份简单恢复模式从来没有进行过完整备份对于上述情况,数据库日志会在“足够满”的时候自动截断,以使VLFs重用。日志截断虽然是VLFs重用,但是不会收缩日志文件的大小。---实验:验证日志的自动截断与日志收缩-------------------------------新建pubs数据库USE pubs--step1:查看pubs数据库中的VLFs信息,第一个VLFs的FSeqNo=23,Status=0,其他 阅读全文
posted @ 2012-07-16 19:10 xwdreamer 阅读(539) 评论(0) 推荐(0) 编辑
摘要:参考文献:SQL 2005修改系统表SQL Server 2005中修改系统表的方法如何登入DAC(SQL Server 2005)ResourceDB Location ChangesResourceDB Location Changes1.What is resourcedb?(from msdn)The Resource database is a read-only database that contains all the system objects that are included with SQL Server. SQL Server system objects, suc 阅读全文
posted @ 2012-07-16 15:32 xwdreamer 阅读(2612) 评论(0) 推荐(0) 编辑
摘要:Page LSNs and RecoveryEvery database page has an LSN in the page header that reflects the location in the transaction log of the last log entry that modified a row on this page. Each log record for changes to a data page has two LSNs associated with it. In addition to the LSN for the actual log reco 阅读全文
posted @ 2012-07-16 15:09 xwdreamer 阅读(698) 评论(0) 推荐(0) 编辑
摘要:原文:http://msdn.microsoft.com/en-us/library/ms179355(SQL.90).aspx检查点在数据库中的执行过程:在日志文件中写入LOP_BEGIN_CKPT表示checkpoint开始、记录MinLSN,MinLSN=min(LSN of the start of the checkpoint,LSN of the start of the oldest active transaction)如果数据库使用的是简单恢复模式,则截断(truncate)MinLSN之前的所有VLFs。如果是完整恢复或者是大容量日志模式,不会截断任何事务日志。将dirty 阅读全文
posted @ 2012-07-16 13:53 xwdreamer 阅读(462) 评论(0) 推荐(0) 编辑
摘要:官方原文:http://msdn.microsoft.com/en-us/library/ms179355(SQL.90).aspxThe transaction log in a database maps over one or more physical files. Conceptually, the log file is a string of log records(一串日志记录). Physically, the sequence of log records is stored efficiently in the set of physical files that imp 阅读全文
posted @ 2012-07-16 11:20 xwdreamer 阅读(576) 评论(0) 推荐(0) 编辑
摘要:引用:http://msdn.microsoft.com/en-us/library/ms180892(SQL.90).aspx The SQL Server 2005 transaction log operates logically as if the transaction log is a string of log records. Each log record is identified by a log sequence number (LSN). Each new log record is written to the logical end of the log wi. 阅读全文
posted @ 2012-07-13 16:08 xwdreamer 阅读(725) 评论(0) 推荐(0) 编辑
摘要:引用:http://msdn.microsoft.com/en-us/library/ms186259(SQL.90).aspx最近在学习sql server事务日志的东西,知道现在大部分数据库都支持先写log再写数据的策略,也就是保证数据不先于日志写入磁盘。我们将这样的日志叫做Write-Ahead Transaction Log。Write-Ahead Transaction Log的完整解释可以在MSDN上找打,写的非常详细,也很透彻,不难懂,我把这部分内容摘录下来。Write-Ahead Transaction Log的解释SQL Server 2005 uses a write-ah 阅读全文
posted @ 2012-07-13 11:05 xwdreamer 阅读(2604) 评论(0) 推荐(0) 编辑
摘要:前言在前篇的一篇博客Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)中写到了数据中表和索引的结构。当时在写聚集索引的时候说聚集索引的叶子节点就是真实的数据,而非聚集索引的叶子节点是指针,要么指向聚集索引,要么指向行号。当时就在考虑一个,如果索引都带真实数据了,那么到底是索引大还是表呢呢?今天在msdn上查到了如何估算数据库的大小,其中在估算表的大小时,给出了如下说明:可以使用下列步骤估计在表中存储数据所需的空间:按照估计堆的大小或估计聚集索引的大小中的说明计算堆或聚集索引所需的空间。对于每个非聚集索引,按照估计非聚集索引的大小中的说明计算其所需的空间。对步骤 1 阅读全文
posted @ 2012-07-12 21:04 xwdreamer 阅读(2109) 评论(0) 推荐(0) 编辑
摘要:活动事务日志所谓活动事务日志,就是所有没有提交的事务所产生的日志记录,以及在它们之后的所有日志记录。如果一个事务还没有提交,那它可以在任何时候回滚。SQL Server必须做好这种准备,以便能够从日志记录中找回修改前的数据内容,完成回滚。在SQL Server里面,所有的日志记录都有严格顺序,中间不可以有任何跳跃。所以如果某个数据库有没有提交的事务,SQL Server会标记所有从这个事务开始的日志记录(不管和这个事务有没有关系)为活动事务日志 。这些日志记录都有可能“需要”被用来做回滚。事务的提交与回滚事务在提交前,所有的操作都是在虚拟的环境中进行的,事务提交时才将事务进行的所有修改更新到数 阅读全文
posted @ 2012-07-12 19:02 xwdreamer 阅读(2171) 评论(0) 推荐(0) 编辑
摘要:Question:What is Collation? How it will affect SQL Server database, and server?Answer:字符的存储 在将collation之前,我们首先需要知道字符是如何被存储的。在计算机中,所有数据都是用0和1这样的位来描述。一个字节有8位,因此一个字节最多可以描述256个字符。在欧美国家,比如美国,他们的文字字符主要就是26个字母加上一些特殊符号(+-*/等),用一个字节就可以存储,一个国家使用的所有字符就是一个code page,用一个字节存储字符的code page 叫做single-byte code page。但是 阅读全文
posted @ 2012-07-11 11:46 xwdreamer 阅读(11786) 评论(4) 推荐(3) 编辑
摘要:参考文献:http://www.cnblogs.com/mekong/archive/2009/04/17/1437996.htmlhttp://msdn.microsoft.com/en-us/library/ms186939.aspx前言这几天在查阅sql server collation的问题,这其中就牵涉到了unicode,non-unicode,varchar,nvarchar,ANSI等字符编码的问题。首先我们讲解一些基础背景知识定长或变长所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;有var前缀的,表示是实际存储空 阅读全文
posted @ 2012-07-11 10:41 xwdreamer 阅读(5019) 评论(0) 推荐(0) 编辑
摘要:0.参考文献[1]SQL Server的还原(2)——STOPAT[2]SQL Server的还原[3]恢复到日志序列号 (SQL Server)1.日志序列号的概述事务日志中的每个记录都由一个日志序列号 (LSN) 唯一标识。并且LSN是有序的,后发生的日志其LSN肯定大于早发生的日志。2.还原到 LSN 的 Transact-SQL 语法通过使用RESTORE语句,可以在 LSN 处或刚好在 LSN 之前停止,如下所示:使用 WITH STOPATMARK='lsn:<lsn_number>'子句,其中 lsn:<lsnNumber>是一个字符串,它 阅读全文
posted @ 2012-07-09 17:38 xwdreamer 阅读(1252) 评论(0) 推荐(1) 编辑
摘要:参考文献[1]SQL Server的还原[2]如何还原到某个时间点 (Transact-SQL)数据库备份在参考1中我们提到了sqlserver中数据库还原的操作,但是没有提到数据库还原中一个很有用的关键字STOPAT。下面我们就来讨论如何使用STOPAT关键字来还原数据库。--开始:实验4:使用STOPAT关键字来还原数据-------------------------------------step1:创建备份设备EXEC sp_addumpdevice 'disk', 'TESTDB2Backups', 'd:\backup\TESTDB2Bac 阅读全文
posted @ 2012-07-09 16:54 xwdreamer 阅读(3583) 评论(0) 推荐(0) 编辑
摘要:参考文献表和索引数据结构体系结构SqlServer存储结构组织其分区中的数据或索引页漫谈数据库索引正文SqlServer用三种方法来组织其分区中的数据或索引页:1、聚集索引结构聚集索引是按B树结构进行组织的,B树中的每一页称为一个索引节点。每个索引行包含一个键值和一个指针。指针指向B树上的某一中间级页(比如根节点指向中间级节点中的索引页)或叶级索引中的某个数据行(比如中间级索引页中的某个索引行指向叶子节点中的数据页)。每级索引中的页均被链接在双向链接列表中。数据链内的页和行将按聚集索引键值进行排序,聚集索引保证了表格的数据按照索引行的顺序排列;补充(PS:2012-7-9)从上图可以看出,聚集 阅读全文
posted @ 2012-07-06 16:27 xwdreamer 阅读(2743) 评论(1) 推荐(0) 编辑
摘要:0.参考文献Table Scan, Index Scan, Index SeekSQL SERVER – Index Seek vs. Index Scan – Diffefence and Usage – A Simple Noteoracle表访问方式Index Seek和Index Scan的区别以及适用情况1.oracle中的表访问方式在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问:全表扫描(full table scan),直接访问数据页,查找满足条件的数据通过rowid扫描(table access by rowid),如果知道数据的rowid,那么直接 阅读全文
posted @ 2012-07-06 15:08 xwdreamer 阅读(14451) 评论(6) 推荐(15) 编辑
摘要:在oracle中,我们要查看查询统计信息,我们可以设计autotrace,可以参考设置SQL*PLUS的AUTOTRACE,那么在sqlserver中如何设置呢?在sqlserver中也有统计信息,主要有statistics time和statistics io,比如我们执行如下查询,set statistics time onset statistics io onselect * from Sales.Ordersset statistics time offset statistics io off在MESSAGE标签中我们可以查看到一下一下信息SQL Server parse and 阅读全文
posted @ 2012-07-05 14:53 xwdreamer 阅读(521) 评论(0) 推荐(0) 编辑
摘要:参考文献http://blogs.msdn.com/b/ericwhite/archive/2010/06/11/access-denied-by-business-data-connectivity.aspxhttp://social.technet.microsoft.com/Forums/en/sharepoint2010customization/thread/2a64ce83-ecf5-4f43-a46d-a6c3598df8cchttp://zimmergren.net/technical/access-denied-by-business-data-connectivity-so 阅读全文
posted @ 2012-07-05 13:58 xwdreamer 阅读(543) 评论(0) 推荐(0) 编辑
摘要:0.参考文献http://tech.it168.com/msoft/2007-12-21/200712211034451.shtml1. 概述在LINQ to SQL系列之一基础篇中,我介绍了学习LINQ to SQL的一些基础知识的准备,为了让大家对LINQ to SQL有一个直观的认识和了解,在本文中,我将以Step By Step的形式来创建一个LINQ to SQL的程序,实现基本的增删改查。2. 环境准备我的开发环境 A. Visual Studio 2010 B. SQL Server 20123. 准备数据库第一步,我们先准备相关的数据表结构(在下篇文章中我会写到如何使用Data 阅读全文
posted @ 2012-07-05 11:19 xwdreamer 阅读(1331) 评论(0) 推荐(0) 编辑
摘要:在http://www.microsoft.com/en-us/download/details.aspx?id=17215找到了10 个 SharePoint 2010开发手册,里面有许多案例可以参考,但是刚开始的时候按照教程来做怎么都无法编译。后来才知道这个教程由前序步骤,也就是要在sharepoint站点上创建Projects和Employees这两个custom list。具体的创建方法可以使用代码来完成。我们下载到SharePoint2010_Developer_HandsOnLabs_April2010.zip以后,在SharePoint2010_Developer_HandsOn 阅读全文
posted @ 2012-07-05 09:18 xwdreamer 阅读(306) 评论(0) 推荐(0) 编辑
摘要:参考文献:http://sensoft2000-sharepoint.blogspot.com/2010/06/exception-of-type-microsoftsharepointup.htmlhttp://msdn.microsoft.com/en-us/library/ee554869.aspx错误:配置sharepoint2010的时候,出现如下错误:Failed to create the configuration database.An exception of type Microsoft.SharePoint.Upgrade.SPUpgradeException was 阅读全文
posted @ 2012-07-04 13:10 xwdreamer 阅读(1988) 评论(1) 推荐(0) 编辑
摘要:参考文献:http://sensoft2000-sharepoint.blogspot.com/2010/06/could-not-load-file-or-assembly.html错误:在配置share point 2010的时候出现如下错误:Failed to create the configuration database.An exception of type System.IO.FileNotFoundException was thrown. Additional exception information: Could not load file or assembly . 阅读全文
posted @ 2012-07-04 12:58 xwdreamer 阅读(3231) 评论(0) 推荐(0) 编辑
摘要:要使用sharepoint开发一个项目,下载sharepoint server 2010并安装,我的开发环境是win 7(x64),因此需要进行特定的设置才可以安装,可以参考将Sharepoint Server 2010部署到WINDOWS 7,而更加具体的sharepoint安装,包括数据库连接配置可以参考SharePoint 2010安装配置详解。 参考上述文章进行安装都很顺利,但是在最后进行配置的时候出现错误,错误内容如下:Failed to create a database.An exception of type System.Data.SqlClient.SqlExcept... 阅读全文
posted @ 2012-07-04 11:41 xwdreamer 阅读(4014) 评论(0) 推荐(0) 编辑
摘要:参考文献:http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html前言今天在安装sqlserver2008 r2的时候,在Server Configuration阶段要求我设定sqlserver中各种服务的账户名称,如下图所示:账户类型可以在后期修改,改的就是服务中的log on as里面的属性。那么Local system/Network service/Local Service这三种账户有什么区别呢?LocalSystem 账户LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任. 阅读全文
posted @ 2012-07-03 14:55 xwdreamer 阅读(38199) 评论(2) 推荐(2) 编辑
摘要:参考文献:http://hi.baidu.com/baootong/blog/item/36f0a1229d7410be4723e824.html1、服务中服务名称的区别:默认实例:MSSQLSERVER;命名实例:实列名为:benet,在服务中的名称是:MSSQL$BENET; 注:如果你有多个实例的时候会在服务中出现多个服务名称,一个实例对应一个服务。2、连接到查询分析器或探查器的连接字符串的区别:默认实例可以使用:“.”(点)、“(local)”、“计算机名称”实例名称:计算机名:pcname,实例名:benet,连接时使用的名称是:pcname\benet3、端口区别默认实例:1433 阅读全文
posted @ 2012-07-03 14:23 xwdreamer 阅读(34251) 评论(0) 推荐(1) 编辑
摘要:问题在学习sql server 索引的时候,发现找到的很多资料都用的是一个Credit的数据,但是我不知道Credit数据库是从哪里来的。后来在聚集索引与非聚集索引详解这篇文章中找到了如下信息:USE CREDIT go -- These samples use the Credit database. You can download and restore the -- credit database from here: -- http://www.sqlskills.com/resources/conferences/CreditBackup80.zip -- NO... 阅读全文
posted @ 2012-07-02 14:02 xwdreamer 阅读(32646) 评论(0) 推荐(0) 编辑
摘要:参考文献SQL Server dump 介绍前言之前听同事们之间交流经常会听到dump这个词,但是一直不明白dump是什么东西,今天特地整理一下这方面的资料。我们称dump为转储,但这边我们说的dump不是SQL Server本身的DUMP备份命令,而是指通过sqldumper.exe中的dump。那什么是dump呢,dump指的是将某种内容转换为另外一种更具可读性的方式。在ORACLE中,有专门的dump命令可以dump出数据文件等的内容,其trace也相当于另外一种dump。通过dump,我们便可以了解整个系统的运行原理。SQL Server这方面的资料很少,当然,这也符合了微软不开源的策 阅读全文
posted @ 2012-07-02 09:31 xwdreamer 阅读(18087) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示