知识点培训讲义.docVIP

  • 2
  • 0
  • 约2.64万字
  • 约 32页
  • 2018-08-24 发布于贵州
  • 举报
知识点培训讲义

提纲: SQLServer锁的概念 SQLServer事物概念 解决数据库异常膨胀的技术思路 操作系统崩溃后数据库重新安装的流程 数据库性能优化 常见的SQL Server连接失败错误及解决方法 无法合理使用已建立的索引的错误写法 8、 常见系统函数 9、 编写可读性强的代码 1. SQLServer锁的概念 1.1锁定 Microsoft SQL Server 使用锁定确保事务完整性和数据库一致性。锁定可以防止用户读取正在由其他用户更改的数据,并可以防止多个用户同时更改相同数据。如果不使用锁定,则数据库中的数据可能在逻辑上不正确,并且对数据的查询可能会产生意想不到的结果。 虽然 SQL Server 自动强制锁定,但可以通过了解锁定并在应用程序中自定义锁定来设计更有效的应用程序 1.2并发问题 如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。并发问题包括: 丢失或覆盖更新。 未确认的相关性( HYPERLINK mk:@MSITStore:C:\\Program%20Files\\Microsoft%20SQL%20Server\\80\\Tools\\Books\\acdata.chm::/ac_8_con_7a_3kqb.htm \l sql:dirty_read#sql:dirty_read \o 查看定义 脏读)。 不一致的分析( HYPERLINK mk:@MSITStore:C:\\Program%20Files\\Microsoft%20SQL%20Server\\80\\Tools\\Books\\acdata.chm::/ac_8_con_7a_3kqb.htm \l sql:nonrepeatable_read#sql:nonrepeatable_read \o 查看定义 非重复读)。 幻像读。 1.2.1丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。 例如,两个编辑人员制作了同一文档的电子复本。每个编辑人员独立地更改其复本,然后保存更改后的复本,这样就覆盖了原始文档。最后保存其更改复本的编辑人员覆盖了第一个编辑人员所做的更改。如果在第一个编辑人员完成之后第二个编辑人员才能进行更改,则可以避免该问题。 1.2.2未确认的相关性(脏读) 当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。 例如,一个编辑人员正在更改电子文档。在更改过程中,另一个编辑人员复制了该文档(该复本包含到目前为止所做的全部更改)并将其分发给预期的用户。此后,第一个编辑人员认为目前所做的更改是错误的,于是删除了所做的编辑并保存了文档。分发给用户的文档包含不再存在的编辑内容,并且这些编辑内容应认为从未存在过。如果在第一个编辑人员确定最终更改前任何人都不能读取更改的文档,则可以避免该问题。 1.2.3不一致的分析(非重复读) 当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。然而,在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的。而且,不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取。 例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题。 1.2.4幻像读 当对某行执行插入或删除操作,而该行属于某个事务正在读取的行的范围时,会发生幻像读问题。事务第一次读的行范围显示出其中一行已不复存在于第二次读或后续读中,因为该行已被其它事务删除。同样,由于其它事务的插入操作,事务的第二次或后续读显示有一行已不存在于原始读中。 例如,一个编辑人员更改作者提交的文档,但当生产部门将其更改内容合并到该文档的主复本时,发现作者已将未编辑的新材料添加到该文档中。如果在编辑人员和生产部门完成对原始文档的处理之前,任何人都不能将新材料添加到文档中,则可以避免该问题。 1.3隔离级别 当锁定用作并发控制机制时,它可以解决并发问题。这使所有事务得以在彼此完全隔离的环境中运行,但是任何时候都可以有多个正在运行的事务。 可串行性是通过运行一组并发事务达到的数据库状态,等同于这组事务按某种顺序连续执行时所达到的数据库状态。 SQL-92 隔离级别 尽管可串行性对于事务确保数据库中的数据在所有时间

文档评论(0)

1亿VIP精品文档

相关文档