zoukankan      html  css  js  c++  java
  • 修改数据库(设置数据库选项)

      可以为每个数据库都设置若干个决定数据库特点的数据库级选项。只有系统管理员、数据库所有者以及 sysadmin 和 dbcreator 固定服务器角色和 db_owner 固定数据库角色的成员才能修改这些选项。这些选项对于每个数据库都是唯一的,而且不影响其它数据库。可以使用 ALTER DATABASE 语句的 SET 子句、sp_dboption 系统存储过程,或者在某些情况下使用 SQL Server 企业管理器设置数据库选项。
      说明 通过使用 sp_configure 系统存储过程或者 SQL Server 企业管理器,可以设置服务器范围的设置。
      设置了数据库选项之后,将自动发出一个检查点,它会使修改立即生效。
      
      若要更改新创建数据库的任意数据库选项的默认值,请更改 model 数据库中的适当数据库选项。例如对于随后创建的任何新数据库,如果希望 AUTO_SHRINK 数据库选项的默认设置都为 ON,则将 model 的 AUTO_SHRINK 选项设置为 ON。
      
      有五类数据库选项:
      
      自动选项
      
      
      游标选项
      
      
      恢复选项
      
      
      SQL 选项
      
      
      状态选项
      自动选项
      自动选项控制某些自动行为。
      
      AUTO_CLOSE
      
      当设置为 ON 时,在数据库的最后一个用户退出,而且数据库中的所有过程都完成时,数据库将关闭并完全退出系统,从而释放所有资源。默认情况下,当使用 Microsoft® SQL Server™ 2000 Desktop Engine 时,对于所有数据库,此选项都设置为 ON,而对于所有其它版本都设置为 OFF,与操作系统无关。当用户试图再次使用数据库时,该数据库将自动重新打开。如果数据库完全退出系统,则该数据库不会重新打开,直到下一次 SQL Server 重新启动时,用户试图使用该数据库为止。当为 OFF 时,即使当前没有用户使用数据库,数据库仍然保持打开状态。
      
      AUTO_CLOSE 选项对于桌面数据库很有用,因为它允许将数据库文件作为常规文件进行管理。它们可以移动、复制以制作备份,或者甚至通过电子邮件发送给其他用户。如果应用程序与 SQL Server 反复建立连接和断开连接,则不应对这样的应用程序所访问的数据库使用 AUTO_CLOSE 选项。在每个连接之间关闭和重新打开数据库的开销将削弱性能。
      
      此选项的状态可以通过检查 DATABASEPROPERTYEX 函数的 IsAutoClose 属性来确定。
      
      AUTO_CREATE_STATISTICS
      
      当设置为 ON 时,将在谓词中使用的列上自动创建统计。添加统计将提高查询性能,因为 SQL Server 查询优化器可以更好地确定如何估算查询。如果未使用统计,则 SQL Server 将自动删除它们。当设置为 OFF 时,SQL Server 不自动创建统计;相反,可以手动创建统计。
      默认情况下,AUTO_CREATE_STATISTICS 为 ON。
      
      此选项的状态可通过检查 DATABASEPROPERTYEX 函数的 IsAutoCreateStatistics 属性来确定。
      
      AUTO_UPDATE_STATISTICS
      
      当设置为 ON 时,因为更改表中数据而造成统计过期时,将自动更新现有的统计。当设置为 OFF 时,现有的统计不会自动更新;而可以手动更新该统计。
      默认情况下,将 AUTO_UPDATE_STATISTICS 设置为 ON。
      
      此选项的状态可以通过检查 DATABASEPROPERTYEX 函数的 IsAutoUpdateStatistics 属性来确定。
      
      AUTO_SHRINK
      
      当设置为 ON 时,数据库文件可作为定期收缩的对象。数据文件和日志文件都可以自动由 SQL Server 收缩。当设置为 OFF 时,在定期检查未使用空间的过程中,数据库文件不自动收缩。默认情况下,当使用 SQL Server 桌面版时,对于所有数据库,此选项都设置为 ON,而对于所有其它版本都设置为 OFF,与操作系统无关。
      
      如果将数据库设置为 SIMPLE 恢复模型或备份日志,则 AUTO_SHRINK 只减小事务日志的大小。
      
      当文件中超过百分之二十五的部分包含未使用的空间时,AUTO_SHRINK 选项将导致收缩文件。文件将收缩至未使用空间占文件 25% 的大小,或收缩至文件创建时的大小,两者之间取其大。
      
      不能收缩只读数据库。
      
      此选项的状态可通过检查 DATABASEPROPERTYEX 函数的 IsAutoShrink 属性来确定。
      
      游标选项
      游标选项控制游标的行为和作用域。
      
      CURSOR_CLOSE_ON_COMMIT
      
      当设置为 ON 时,在提交事务时,所有打开的游标都将自动关闭(遵从 SQL-92 规范)。默认情况下,此设置为 OFF,并且游标仍然在各事务边界间保持打开状态,仅当连接关闭或被显式关闭时,才会关闭游标。
      
      连接级设置(使用 SET 语句设置)替代 CURSOR_CLOSE_ON_COMMIT 的默认数据库设置。默认情况下,当连接到 SQL Server 时,ODBC 和 OLE DB 客户端发出连接级 SET 语句,以将会话的 CURSOR_CLOSE_ON_COMMIT 设置为 OFF。
      此选项的状态可通过检查 DATABASEPROPERTYEX 函数的 IsCloseCursorsOnCommitEnabled 属性来确定。
      
      CURSOR_DEFAULT LOCAL | GLOBAL
      
      如果设置了 CURSOR_DEFAULT LOCAL,且创建游标时没有将其定义为 GLOBAL,则对于在其中创建游标的批处理、存储过程或触发器,游标的作用域都是局部。游标名仅在该作用域内有效。在批处理、存储过程、触发器或存储过程 OUTPUT 参数中,该游标可由局部游标变量引用。当批处理、存储过程或触发器终止时,游标将被隐式释放,除非它在一个 OUTPUT 参数中传递回来。如果 OUTPUT 参数将游标传递回来,则游标在最后引用它的变量释放或离开作用域时释放。
      
      如果设置了 CURSOR_DEFAULT GLOBAL,且在创建游标时没有将其定义为 LOCAL,则游标的作用域对于连接是全局的。在由连接执行的任何存储过程或批处理中,都可以引用该游标名称。该游标仅在断开时被隐式释放。CURSOR_DEFAULT GLOBAL 是默认设置。
      此选项的状态可通过检查 DATABASEPROPERTYEX 函数的 IsLocalCursorsDefault 属性来确定。
      
      恢复选项
      恢复选项控制数据库的恢复模型。
      
      RECOVERY FULL | BULK_LOGGED | SIMPLE
      
      指定 FULL 时,数据库备份和事务日志备份用于提供从媒体故障中完全恢复的能力。包括大容量操作(如 SELECT INTO、CREATE INDEX 和大容量装载数据)在内的所有操作都将完整记入日志。
      指定 BULK_LOGGED 时,对所有 SELECT INTO、CREATE INDEX 和大容量装载数据操作的日志记录是最小的,因此所需的日志空间较少。这种模式可获得更好的性能和更少的日志空间使用量,但是丢失数据的危险比使用完整恢复要大。
      指定 SIMPLE 时,只能将数据库恢复到上一次完整数据库备份或上一次差异备份。
      SIMPLE 是 SQL Server 桌面版和数据引擎的默认设置,FULL 是所有其它版本的默认设置。
      
      此选项的状态可通过检查 DATABASEPROPERTYEX 函数的 Recovery 属性来确定。
      
      TORN_PAGE_DETECTION
      
      此恢复选项允许 SQL Server 检测由于电源故障或其它系统停歇导致的未完成的 I/O 操作。
      
      当设置为 ON 时,只要一个 8 KB 的数据库页写入磁盘,该页的每个 512 字节扇区都有一位被翻转。当 SQL Server 以后读取该页时,如果有一个位发生错误,则该页将被错误写入;这样就会检测到一个残缺页。通常在恢复期间检测到残缺页,因为错误写入的任何页都可能在恢复时被读取。
      
      虽然 SQL Server 数据库页是 8 KB,但是磁盘使用 512 字节的扇区执行 I/O 操作。因此,每个数据库页要写 16 个扇区。如果在操作系统将第一个 512 字节扇区写到磁盘和完成 8 KB I/O 操作之间系统失败(例如,由于电源故障),则可能出现残缺页。如果数据库页的第一个扇区在失败之前成功地写入磁盘,则磁盘上的数据库页将显示为更新过的,尽管可能没有更新成功。
      
      
      
      说明 使用备用电池的磁盘高速缓存可以保证数据成功地写到磁盘上,或者根本就不写。
      
      
      如果检测到残缺页,将出现一个 I/O 错误,并断开连接。如果在恢复过程中检测到残缺页,则数据库也会被标记为可疑。应该还原数据库备份,并应用所有事务日志备份,因为它在物理上是不一致的。
      
      默认情况下,TORN_PAGE_DETECTION 为 ON。
      
      此选项的当前设置可通过检查 DATABASEPROPERTYEX 的 IsTornPageDetectionEnabled 属性来确定。
      
      SQL 选项
      SQL 选项控制 ANSI 遵从选项。
      
      ANSI_NULL_DEFAULT
      
      允许用户控制数据库默认为空。未显式指定 NULL 或 NOT NULL 时,用户定义的数据类型或列定义将使用为空性的默认设置。为空性由会话或数据库设置确定。Microsoft® SQL Server™ 2000 默认为 NOT NULL。对于 ANSI 兼容性,数据库选项 ANSI_NULL_DEFAULT 设置为 ON 将使数据库默认设置更改为 NULL。
      
      当此选项设置为 ON 时,在 CREATE TABLE 或 ALTER TABLE 语句过程中,没有显式定义为 NOT NULL 的所有用户定义的数据类型或列都将默认为允许空值。使用约束定义的列都将遵循约束规则,而无视此设置。
      
      连接级设置(使用 SET 语句设置)替代 ANSI_NULL_DEFAULT 的默认数据库级设置。默认情况下,当连接到 SQL Server 时,ODBC 和 OLE DB 客户端发出连接级 SET 语句,以将会话的 ANSI_NULL_DEFAULT 设置为 ON。
      此选项的状态可通过检查 DATABASEPROPERTYEX 函数的 IsAnsiNullDefault 属性来确定。
      
      ANSI_NULLS
      
      当设置为 ON 时,所有与空值比较的值都取值为 NULL(未知)。当设置为 OFF 时,如果两个值都为 NULL,则非 Unicode 值与空值比较的值都取值为 TRUE。默认情况下,ANSI_

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    【转+补充】在OpenCV for Android 2.4.5中使用SURF(nonfree module)
    Delphi StarOffice Framework Beta 1.0 发布
    Angular ngIf相关问题
    angularjs文档下载
    公众号微信支付开发
    公众号第三方平台开发 教程六 代公众号使用JS SDK说明
    公众号第三方平台开发 教程五 代公众号处理消息和事件
    公众号第三方平台开发 教程四 代公众号发起网页授权说明
    公众号第三方平台开发 教程三 微信公众号授权第三方平台
    公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取
  • 原文地址:https://www.cnblogs.com/Athrun/p/831100.html
Copyright © 2011-2022 走看看