1 / 42

全文搜索

全文搜索. 全文目录. 全文索引. 全文索引. 全文索引. 一个数据库只能有一个全文目录 一个全文目录可以有多个全文索引 一张表只能有一个全文索引 全文索引的列必须是 not null 和唯一的. Lob_tree_page. Lob_Mix_Page. Lob_Mix_Page. Lob_Mix_Page. Lob_Mix_Page. Lob_Mix_Page. Lob_Mix_Page. GetNext () 函数. 不断循环调用 GetNext () 函数去获取下一行的值. 2012 年的数据. 2013 年的数据. 文件组 1. 文件组 2.

adair
Télécharger la présentation

全文搜索

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 全文搜索 全文目录 全文索引 全文索引 全文索引 一个数据库只能有一个全文目录 一个全文目录可以有多个全文索引 一张表只能有一个全文索引 全文索引的列必须是not null和唯一的

  2. Lob_tree_page Lob_Mix_Page Lob_Mix_Page Lob_Mix_Page Lob_Mix_Page Lob_Mix_Page Lob_Mix_Page

  3. GetNext()函数 不断循环调用GetNext()函数去获取下一行的值

  4. 2012年的数据 2013年的数据 文件组1 文件组2 文件组3 当前的数据 (非历史数据) 历史数据 聚集索引/ 非聚集索引(索引)

  5. NULL 位图(1个字节 8位)

  6. NULL 位图(2个字节 16位) 第一行记录

  7. ct1聚集索引表

  8. ct1聚集索引表

  9. 扫描(全表扫描、聚集索引扫描、非聚集索引扫描)扫描(全表扫描、聚集索引扫描、非聚集索引扫描) Allocation scan Range scan

  10. ct1聚集索引表

  11. ct1聚集索引表

  12. 第一次分配的页面的c1列的值分别是 21~100 第三次分配的页面的c1列的值分别是 1~10 第二次分配的页面的c1列的值分别是 11~20

  13. Range scan Allocation scan

  14. nct1非聚集索引表

  15. Eager Spool Eager Spool Eager Spool Eager Spool Index Spool Row Count Spool Spool Table Spool Lazy Spool Lazy Spool Lazy Spool Lazy Spool Window Spool 

  16. 非聚集索引 tb表 Spool数据库 Tempdb数据库

  17. 聚集索引 tb表 叶子节点(表数据) Tempdb数据库 Spool数据库

  18. 第一步:SQLSERVER扫描第一行记录 第二步:更新第一行记录的Salary为2.5(Salary*2.5)

  19. 第三步:非聚集索引按照非聚集索引键进行重新排序第三步:非聚集索引按照非聚集索引键进行重新排序 第四步:扫描第二行记录

  20. 第五步:更新第二行记录的Salary为5.0 (Salary*2.5)

  21. 有4行记录 有4行记录 聚合 4+4+4=12 有4行记录

  22. FileID:3 Partionnum:1 文件组名:FG_TestUnique_Id_01 FileID:4 Partionnum:2 文件组名:FG_TestUnique_Id_02 FileID:5 Partionnum:3 文件组名:FG_TestUnique_Id_03

  23. 在文件组一里面的数据页有2行记录 FileID:3 Partionnum:1 文件组名:FG_TestUnique_Id_01 FileID:4 Partionnum:2 文件组名:FG_TestUnique_Id_02 FileID:5 Partionnum:3 文件组名:FG_TestUnique_Id_03 在文件组二里面的数据页有2行记录 在文件组三里面的数据页有1行记录

  24. FileID:3 Partionnum:1 文件组名:FG_TestUnique_Id_01 电脑E盘 FG_TestUnique_Id_01_data.ndf文件 FG_TestUnique_Id_02_data.ndf文件 FG_TestUnique_Id_03_data.ndf文件 FileID:4 Partionnum:2 文件组名:FG_TestUnique_Id_02 FileID:5 Partionnum:3 文件组名:FG_TestUnique_Id_03

  25. FileID:3 Partionnum:1 文件组名:FG_TestUnique_Id_01 FileID:4 Partionnum:2 文件组名:FG_TestUnique_Id_02 FileID:5 Partionnum:3 文件组名:FG_TestUnique_Id_03

  26. FileID:4 Partionnum:2 文件组名:FG_TestUnique_Id_02 FileID:3 Partionnum:1 文件组名:FG_TestUnique_Id_01 FileID:5 Partionnum:3 文件组名:FG_TestUnique_Id_03

  27. FileID:3 Partionnum:1 文件组名:FG_TestUnique_Id_01 FileID:4 Partionnum:2 文件组名:FG_TestUnique_Id_02 FileID:5 Partionnum:3 文件组名:FG_TestUnique_Id_03

  28. 一个SQL批处理 一条SQL语句 或者 一个TASK 处理 真正执行 一个WORKER

  29. 客户端一 客户端二要的结果集 取走结果 由于客户端一那边的某种原因受到网络阻塞 客户端一不能及时取走他要的结果集 客户端二 网络缓冲区 客户端一的结果集

  30. 内存 3条记录 逻辑读 物理读 3条记录 客户端 磁盘

  31. 记录已经缓存在内存里 内存 3条记录 磁盘 逻辑读 客户端

  32. 逻辑读 物理读 >=

  33. 索引页 基本表(数据页) 嵌套循环 tb表有两列,索引创建在A列上

  34. SQL2005 SSMS SQL2008 EXPRESS版 SSMS SQL2012 SSMS 性能监视器 性能监视器 性能监视器 sqlctr.ini sqlctr.ini sqlctr.ini 2008性能计数器 2005性能计数器 2012性能计数器 Windows内核

  35. SQL2012 实例一 SQL2012性能计数器 SQL2012 实例二 SQL2012 实例三

  36. 事务128 update 数据页581 set name =英国 where id=2 事务121 已经commit 事务128 还没有commit 写入BAK文件 现在数据页面581有两个版本,一个是已经commit的版本,一个是还没有commit的版本,SQLSERVER将已commit的版本写入bak文件

  37. 默认备份f 不活动日志f 活动日志f 截断f 归档f 带入少量活动日志f BAK文件

  38. no_truncate或copy_only参数f 不活动日志f 活动日志f 不截断f 归档f 带入少量活动日志f BAK文件

  39. NO_TRUNCATE 指定不截断日志,并使数据库引擎尝试执行备份, 而不考虑数据库的状态。 因此,使用 NO_TRUNCATE 执行的备份可能具有不完整的元数据。 该选项允许在数据库损坏时备份日志。 BACKUP LOG 的 NO_TRUNCATE 选项相当于 同时指定 COPY_ONLY 和 CONTINUE_AFTER_ERROR。 如果不使用 NO_TRUNCATE 选项, 则数据库必须处于 ONLINE 状态。 如果数据库处于 SUSPENDED 状态, 则可能无法通过指定 NO_TRUNCATE 来创建备份。 但是,如果数据库处于 OFFLINE 或 EMERGENCY 状态,则即使使用 NO_TRUNCATE, 也不允许执行 BACKUP。

  40. 日志链的原理: 从截断部分开始算一个新的日志备份记录点,如果是copy_only 由于不截断日志,所以不会影响日志链 不活动日志f 活动日志f 截断f 归档f 带入少量活动日志f BAK文件

More Related