透明 发表于 2015-1-16 22:17:31

MYSQL编程:SQL Server 2005中Tempdb变更剖析

“通过有能力的DBA的一个简单计划,MySQL可以达到令人难以想像的运行速度,”一位资深DBA如此表示。MySQL中没有多余的功能来拖累CPU或占用内存。  tempdb数据库是SQLServer用于一时大概开关操纵的数据库。对tempdb所做的良多优化都是在通明的情形下,让处置减速,本文就先容tempdb对SQLServer2005的影响以匡助人人使用这些来写出更好的、更先辈的SQLServer2005代码。
  SQLServer2005版本中的一切变更能够写成一本书,现实上,已被写成了好几本书。个中,最主要的变更不是功效上的变更;这些变更产生在用户大概办理员没法立即感到到的外部的举动上。这就是说,懂得到它们是甚么,它们在甚么情况下会体现出来,将会很有效。
  这些的埋没起来的功能提拔中最好的一个例子就是tempdb数据库——SQLServer用于一时大概开关操纵的数据库。对tempdb所做的良多优化都是在通明的情形下,让处置减速:
  ◆当一时表被创立的时分,一时表会被缓存起来减速功能。但是,有一些标明确的不会被缓存:
  ◆联系关系着显式DDL的一时表
  ◆联系关系着定名的束缚的一时表
  ◆作为静态发生的SQL语句的一部分的一时表——比方,存储历程sp_executeSQL的情况中
  ◆事情表的缓存失掉提拔。为了勤俭了空间,会被重复实行的实行企图中的事情表被截短了;如今只要事情表中的前九个页面才会保存。
  ◆良多其他范例的一时工具也被缓存以进步速率:当在存储历程、函数大概触发器中利用时,表值函数,表变量和部分一时表城市被缓存。关于某种特定的一时工具的编目条目不会被当即抛弃,而是缓存以备未来的重用(一段工夫以后,起码利用的工具将从缓存中扫除)。
  ◆关于tempdb中纪录的一些修正将不再被纪录到日记中,如许能够下降tempdb发生的日记和设备的I/O流量。INSERT操纵只会纪录拔出的纪录,DELETE操纵只会纪录被删除的纪录。只要UPDATE操纵才会同时纪录原值和更新以后的值。(依据Microsoft的外部材料,在此之前的版本,三种操纵城市纪录操纵之前的值和操纵以后的值)
  ◆从头计划tempdb的文件被平衡写进的体例,削减对体系资本的合作。平衡写进意味着每个tempdb文件(假定存在多个文件)会被同时写进。因而,假如每一个物理文件分离到分歧的磁头上,那末对这些文件的写进能够加倍无效率的并行处置。倡议你为一个SQLServer在每个CPU创立一个一时文件,而且将每一个一时文件放在分歧的磁头上。
  ◆假如一个一时表从tempdb中被抛弃,它会在背景举行处置以下降主机程序的守候工夫。实践上,它会被当即处置。
  不单单是功能,一些变更也影响到了SQLServer2005的统计搜集操纵:
  ◆SQLServer2005的静态办理视图(DynamicManagementViews)呈报关于tempdb空间利用情形的统计数据,能够经由过程查询检索到这些数据。比方,SELECTSUM(unallocated_extent_page_count)*8asFROMsys.dm_db_file_space_usage会前往tempdb文件中以kilobytes盘算的自在空间总数。
  ◆Trace标记TF-1118(暗示分派全部的extents给每一个tempdb工具)已被从头改革,削减资本的合作。你能够用它作trace反省而不必忧虑对tempdb功能发生影响。
  ◆两个新的功能目标,一时表新建率(TempTablesCreationRate)和一时表烧毁计数(TempTablesforDestruction),在SQLServer2005中呈现。它们分离唆使每秒钟新建几个一时表和几个一时表在列队烧毁。
  这些变更可让程序员对tempdb实践的运转体例有一些洞察,而不是被它外表上的举动所蒙蔽——毫无疑问,一个立异的程序员能够使用这些来写出更好的、更先辈的SQLServer2005代码。
MySQL部署迅速,因此移植过程不会导致生产中断。而且,较短的学习曲线可以让你的系统管理员迅速掌握它的运行和维护。而且,MySQL的易于维护和管理意味着目前的职员可以处理目前的工作。

深爱那片海 发表于 2015-1-19 06:47:38

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

愤怒的大鸟 发表于 2015-1-24 16:00:14

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

只想知道 发表于 2015-2-2 10:19:32

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。

再见西城 发表于 2015-2-7 18:04:03

入门没那么困难,精通没那么容易

仓酷云 发表于 2015-2-22 20:45:27

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

金色的骷髅 发表于 2015-3-7 03:01:06

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

变相怪杰 发表于 2015-3-14 10:51:00

也可谈一下你是怎么优化存储过程的?

爱飞 发表于 2015-3-21 04:12:59

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
页: [1]
查看完整版本: MYSQL编程:SQL Server 2005中Tempdb变更剖析