Fanr

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  395 随笔 :: 0 文章 :: 184 评论 :: 48万 阅读

05 2011 档案

摘要:有几种系统存储过程和目录视图可提供有关存储过程的信息。使用它们,您可以:查看函数的定义,也就是用于创建用户定义函数的 Transact-SQL 语句。如果您没有用于创建函数的 Transact-SQL 脚本文件,这会很有用。 获得有关函数的信息(例如函数的架构、创建时间及其参数)。列出指定函数所使用的对象及使用指定函数的对象。此信息可用来识别那些受数据库中某个对象的更改或删除影响的函数。查看用户定义函数的定义 sys.sql_modules (Transact-SQL) OBJECT_DEFINITION (Transact-SQL) sp_helptext (Transact-SQL) 查看 阅读全文
posted @ 2011-05-30 13:17 Fanr_Zh 阅读(280) 评论(0) 推荐(0) 编辑

摘要:在 SQL Server 2005 中,您可以确定一个表中触发器的类型、名称、所有者以及创建日期。还可以执行以下操作: 获取触发器定义的有关信息,前提是触发器未在创建或修改时加密。可能需要了解触发器的定义,以了解它的 Transact-SQL 语句,或了解它如何影响所在的表。列出指定的触发器所使用的对象。该信息可在数据库中的影响触发器的对象发生更改或删除时用来标识这些对象。OBJECTPROPERTY 函数通过 ExecIsInsteadOfTrigger 和 ExecIsAfterTrigger 属性报告触发器是 AFTER 还是 INSTEAD OF 触发器。获取有关数据库中的触发器的信息 阅读全文
posted @ 2011-05-27 15:30 Fanr_Zh 阅读(227) 评论(0) 推荐(0) 编辑

摘要:函数AFTER 触发器INSTEAD OF 触发器适用范围表表和视图每个表或视图包含触发器的数量每个触发操作(UPDATE、DELETE 和 INSERT)包含多个触发器每个触发操作(UPDATE、DELETE 和 INSERT)包含一个触发器级联引用无任何限制条件不允许在作为级联引用完整性约束目标的表上使用 INSTEAD OF UPDATE 和 DELETE 触发器。执行晚于:约束处理声明性引用操作创建插入的和删除的表触发操作早于:约束处理替代:触发操作晚于:创建插入的和删除的表执行顺序可指定第一个和最后一个执行不适用插入的和删除的表中的varchar(max)、nvarchar(max) 阅读全文
posted @ 2011-05-27 14:54 Fanr_Zh 阅读(215) 评论(0) 推荐(0) 编辑

摘要:DECLARE @MyTableVar table( ScrapReasonID smallint, Name varchar(50), ModifiedDate datetime); INSERT Production.ScrapReason OUTPUT INSERTED.ScrapReasonID, INSERTED.Name, INSERTED.ModifiedDate INTO @MyTableVar VALUES (N 'Operator error ', GETDATE()); SELECT ScrapReasonID, Name, ModifiedDate FR 阅读全文
posted @ 2011-05-27 11:28 Fanr_Zh 阅读(261) 评论(0) 推荐(0) 编辑

摘要:SET 语句选项当 ODBC 应用程序连接到 SQL Server 时,服务器将自动为会话设置下列选项:SET QUOTED_IDENTIFIER ONSET TEXTSIZE 2147483647SET ANSI_DEFAULTS ONSET CURSOR_CLOSE_ON_COMMIT OFFSET IMPLICIT_TRANSACTIONS OFF这些设置会增加 ODBC 应用程序的可移植性。因为基于 DB-Library 的应用程序通常不设置这些选项,所以应使用上面列出的 SET 选项(设置为 ON 和 OFF)测试触发器。这可以确保触发器正常工作,而无论特定连接在调用触发器时设置的选 阅读全文
posted @ 2011-05-27 09:29 Fanr_Zh 阅读(395) 评论(0) 推荐(0) 编辑

摘要:有两个用于设计 DML 触发器的选项:执行 INSTEAD OF 触发器代替通常的触发操作。还可以对带有一个或多个基表的视图定义 INSTEAD OF 触发器,这些触发器可以扩展视图可支持的更新类型。在执行 INSERT、UPDATE 或 DELETE 语句操作之后执行 AFTER 触发器。指定 AFTER 与指定 FOR 相同。AFTER 触发器只能在表上指定。下表对 AFTER 触发器和 INSTEAD OF 触发器的功能进行了比较。函数 AFTER 触发器 INSTEAD OF 触发器 适用范围表表和视图每个表或视图包含触发器的数量每个触发操作(UPDATE、DELETE 和 INSER 阅读全文
posted @ 2011-05-26 16:05 Fanr_Zh 阅读(236) 评论(2) 推荐(0) 编辑

摘要:有几种系统存储过程和目录视图可提供有关存储过程的信息。使用它们,您可以: 查看存储过程的定义。即查看用于创建存储过程的 Transact-SQL 语句。这对于没有用于创建存储过程的 Transact-SQL 脚本文件的用户是很有用的。 获得有关存储过程的信息(如存储过程的架构、创建时间及其参数)。列出指定存储过程所使用的对象及使用指定存储过程的过程。此信息可用来识别那些受数据库中某个对象的更改或删除影响的过程。若要查看存储过程的定义 sys.sql_modules (Transact-SQL) OBJECT_DEFINITION (Transact-SQL) sp_helptext (Tran 阅读全文
posted @ 2011-05-26 13:45 Fanr_Zh 阅读(955) 评论(0) 推荐(0) 编辑

摘要:深入分析各种raid模式 本文从低层原理上,深入透析了目前存在的7种模式的组成原理,结构,并深刻分析了各种级别相对于单盘IO速率的变化。Raid0Raid0是这样一种模式:我们拿5块盘的raid0为例子。 上图中5个竖条,分别代表5个磁盘上的一个extent,也就是竖条的意思,每个磁盘被逻辑的划分为N个这种extent。然后再在磁盘相同偏移的extent上,横向逻辑分割,形成strip,一个strip横跨过的extent个数,称为strip lenth,而一个strip和一个extent交叉带,称为一个segment,一个segment中所包含的data block个数,称为strip dep 阅读全文
posted @ 2011-05-26 09:55 Fanr_Zh 阅读(5099) 评论(0) 推荐(0) 编辑

摘要:SET 语句选项当创建或更改 Transact-SQL 存储过程后,数据库引擎将保存 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 的设置。 执行存储过程时,将使用这些原始设置。 因此,在执行存储过程时,将忽略任何客户端会话的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 设置。 在存储过程中出现的 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 语句不影响存储过程的功能。其他 SET 选项(例如 SET ARITHABORT、SET ANSI_WARNINGS 或 SET ANSI_PADDINGS 阅读全文
posted @ 2011-05-25 16:15 Fanr_Zh 阅读(2047) 评论(0) 推荐(0) 编辑

摘要:存储过程的设计规则存储过程的设计规则包括以下内容: CREATE PROCEDURE 定义自身可以包括任意数量和类型的 SQL 语句,但以下语句除外。 不能在存储过程的任何位置使用这些语句。CREATE AGGREGATECREATE RULECREATE DEFAULTCREATE SCHEMACREATE 或 ALTER FUNCTIONCREATE 或 ALTER TRIGGERCREATE 或 ALTER PROCEDURECREATE 或 ALTER VIEWSET PARSEONLYSET SHOWPLAN_ALLSET SHOWPLAN_TEXTSET SHOWPLAN_XMLU 阅读全文
posted @ 2011-05-25 16:14 Fanr_Zh 阅读(708) 评论(0) 推荐(0) 编辑

摘要:基于行版本控制的隔离级别通过消除读取操作的锁来改善读取并发。Microsoft SQL Server 引入了两个使用行版本控制的事务隔离级别: READ_COMMITTED_SNAPSHOT 数据库选项为 ON 时,启用使用行版本控制的已提交读隔离的新实现。ALLOW_SNAPSHOT_ISOLATION 数据库选项为 ON 时,启用的新的快照隔离级别。对于大多数应用程序,建议应用使用行版本控制的已提交读隔离,而不要应用快照隔离,原因如下:已提交读隔离比快照隔离占用的 tempdb 空间少。已提交读隔离可用于分布式事务,而快照隔离不能用于分布式事务。已提交读隔离可用于大多数现有应用程序,而不需 阅读全文
posted @ 2011-05-25 10:11 Fanr_Zh 阅读(543) 评论(0) 推荐(0) 编辑

摘要:只要访问接口支持所需的 OLE DB 接口,则本主题中所提到的每一类 Transact-SQL 语句均可以使用。Transact-SQL 语句以下列表列出了 Transact-SQL 语言的一些子集,可对通过基于链接服务器的名称或临时名称访问的远程表使用这些子集:所有具有标准格式 SELECT select_list FROM 子句 WHERE 子句的查询均允许使用。当 new_table_name 引用远程表时,不允许使用 SELECT 语句的 INTO new_table_name 子句。在 SELECT、INSERT、UPDATE 和 DELETE 语句中,不能用单个部分或四个部分组成的 阅读全文
posted @ 2011-05-25 10:09 Fanr_Zh 阅读(312) 评论(0) 推荐(0) 编辑

摘要:锁升级阈值如果没有使用 ALTER TABLE SET LOCK_ESCALATION 选项来禁用表的锁升级并且满足以下任一条件时,则将触发锁升级:单个 Transact-SQL 语句在单个无分区表或索引上获得至少 5,000 个锁。单个 Transact-SQL 语句在已分区表的单个分区上获得至少 5,000 个锁,并且 ALTER TABLE SET LOCK_ESCALATION 选项设为 AUTO。数据库引擎实例中的锁的数量超出了内存或配置阈值。如果由于锁冲突导致无法升级锁,则数据库引擎每当获取 1,250 个新锁时便会触发锁升级。 阅读全文
posted @ 2011-05-24 20:01 Fanr_Zh 阅读(427) 评论(0) 推荐(0) 编辑

摘要:背景: 复制中使用主机名连接的失败。提示服务器不存在原因: tcp/ip属性-》高级-》 NetBios被禁用了。解决方法: 启用 netbios即可 阅读全文
posted @ 2011-05-20 10:20 Fanr_Zh 阅读(377) 评论(0) 推荐(0) 编辑

摘要:背景: 数据库服务无法连接使用机器名连接,并且创建复制时选择了,已存在数据和结构错误: sp_MSget_repl_commands 重复键插入解决方法: 修改sp_MSget_repl_commands 存储过程 declare @snapshot_seqnos table(subscription_seqno varchar(16) primary key),将varchar(16)改为varbinary(16)。 阅读全文
posted @ 2011-05-20 09:02 Fanr_Zh 阅读(311) 评论(0) 推荐(0) 编辑

摘要:有时候我们需要在企业管理器里删除不需要的SQLSERVER注册,但直接通过右键点那个SQLSERVER服务器可能会长时间无响应甚至死,没办法只能通过注册表删除了,如下:HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\SQLEW\Registered Servers X\SQL Server组里找到你不需要的注册名删除即可:) 阅读全文
posted @ 2011-05-18 15:01 Fanr_Zh 阅读(201) 评论(0) 推荐(0) 编辑

摘要:使用 OLE DB、开放式数据库连接 (ODBC)、ActiveX 数据对象 (ADO) 或 DB 库编写的应用程序可以使用 Transact-SQL 分布式事务,方法是发出 Transact-SQL 语句来启动和停止 Transact-SQL 分布式事务。OLE DB 和 ODBC 还包含在应用程序编程接口 (API) 级别对管理分布式事务的支持。OLE DB 应用程序和 ODBC 应用程序可以使用这些 API 函数管理包括其他组件对象模型 (COM) 资源管理器(支持 Microsoft 分布式事务处理协调器 [MS DTC] 事务但不支持 SQL Server 数据库引擎)的分布式事务。 阅读全文
posted @ 2011-05-18 13:52 Fanr_Zh 阅读(566) 评论(0) 推荐(0) 编辑

摘要:USE AdventureWorks2008R2;GOIF EXISTS(SELECT name FROM sys.objects WHERE name = N'dbo.sp_HexToChar') DROP PROCEDURE HexToChar;GOCREATE PROCEDURE dbo.sp_HexToChar @BinValue varbinary(255), @HexCharValue nvarchar(255) OUTPUTAS DECLARE @CharValue nvarchar(255); DECLARE @Position int; DECLARE @Le 阅读全文
posted @ 2011-05-18 10:45 Fanr_Zh 阅读(1606) 评论(0) 推荐(0) 编辑

摘要:USE AdventureWorks2008R2;GODECLARE complex_cursor CURSOR FOR SELECT a.BusinessEntityID FROM HumanResources.EmployeePayHistory AS a WHERE RateChangeDate <> (SELECT MAX(RateChangeDate) FROM HumanResources.EmployeePayHistory AS b WHERE a.BusinessEntityID = b.BusinessEntityID) ;OPEN complex_cursor 阅读全文
posted @ 2011-05-17 09:41 Fanr_Zh 阅读(297) 评论(0) 推荐(0) 编辑

摘要:父/子使用父/子方法时,每一行都包含对父级的引用。下表定义了一个用于在父/子关系中包含父行和子行的典型表:复制代码USE AdventureWorks2008R2 ;GOCREATE TABLE ParentChildOrg(BusinessEntityID int PRIMARY KEY,ManagerId int REFERENCES ParentChildOrg(BusinessEntityID),EmployeeName nvarchar(50) ) ;GO针对一些常见操作比较父/子与 hierarchyid使用 hierarchyid 进行子树查询时速度明显加快。使用 hierarc 阅读全文
posted @ 2011-05-12 14:27 Fanr_Zh 阅读(485) 评论(0) 推荐(0) 编辑

摘要:QL Server 2008 改进了许多并行计划的已分区表的查询处理性能,更改了并行和串行计划的表示方式,增强了编译时和运行时执行计划中所提供的分区信息。本主题将说明这些改进并提供有关如何解释已分区表和索引的查询执行计划的指南,此外还将提供改进已分区对象的查询性能的最佳方法。注意只有 SQL Server Enterprise Edition、Developer Edition 和 Evaluation Edition 支持已分区表和已分区索引。新增的可识别分区的查找操作在 SQL Server 2008 中,已分区表的内部表示形式已发生变化,即已分区表将作为一个多列索引呈现给查询处理器,其中 阅读全文
posted @ 2011-05-12 10:49 Fanr_Zh 阅读(518) 评论(0) 推荐(0) 编辑

摘要:dbcc inputbuffer 查看最后一次执行的sql 阅读全文
posted @ 2011-05-10 11:02 Fanr_Zh 阅读(720) 评论(0) 推荐(0) 编辑

摘要:SQLServer2005中解决死锁问题数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQLServer2005,现在似乎有了一种新的解决办法。将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁。useNorthwindbegintran insertintoOrders(CustomerId)values(@#ALFKI@#) waitfordelay@#00:00:05@# select*fromOrderswhereCustomerId=@#ALFKI@#commitprint@#endtran@# SQLServer对付死锁 阅读全文
posted @ 2011-05-09 09:20 Fanr_Zh 阅读(537) 评论(0) 推荐(0) 编辑

摘要:某些完整日志记录、大规模索引操作可以生成大型数据负荷,不管是脱机执行操作还是联机执行操作,这些数据负荷都可能导致快速填满事务日志。这可能影响性能。通过在索引操作的持续时间内将数据库的恢复模式设置为大容量日志模式或简单模式,可以使这些索引操作的日志记录最小。最小日志记录比完整日志记录更加有效,并可以降低索引操作填满日志空间的可能性。索引操作日志记录下表列出了索引操作和这些操作的每种数据库恢复模式下可用的日志记录的类型。联机和脱机索引操作均支持这些恢复模式。索引操作 完整 大容量日志 简单 ALTER INDEX REORGANIZE完全记录完全记录完全记录ALTER INDEX REBUILD完 阅读全文
posted @ 2011-05-08 10:06 Fanr_Zh 阅读(396) 评论(0) 推荐(0) 编辑

摘要:如果表含有聚集索引,并对要插入的数据进行排序以匹配聚集索引键,则将把数据大容量复制到已经存在聚集索引的表中,并指定 ORDER 提示。这比先将数据复制到表中再创建聚集索引明显要快。 如果表上还存在非聚集索引,请先删除这些索引再将数据复制到表中。若将数据大容量复制到不带非聚集索引的表中,然后重新创建非聚集索引,一般比将数据大容量复制到存在非聚集索引的表中要快。 阅读全文
posted @ 2011-05-08 10:03 Fanr_Zh 阅读(1113) 评论(0) 推荐(0) 编辑

摘要:------------------------------dbcc page内容解释--author:boyi55----------------------------dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])The printopt parameter has the following meanings:0 - print just the page header1 - page header plus per-row hex dumps and a dump of t 阅读全文
posted @ 2011-05-03 17:04 Fanr_Zh 阅读(5997) 评论(0) 推荐(2) 编辑

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