网亚机房管理软件博客

新实用主义典范

CLR集成的设计目标

在架构中集成SQL CLR时,应该牢记它的设计目标:

性能:最佳实践指出,不应将CLR程序集用于查询数据。这应该是T-SQL的工作。CLR程序集不应把事件花到访问数据上。将想要处理的数据发送到程序集,而不是让程序集从SQL Server中取出数据。

可扩展性:SQL Server和SQLCLR在处理内存管理的方式上有区别。SQL Server更合作,并且支持一种非抢占式的线程模型。CLR支持抢占式线程模型,并且不区分物理内存和虚拟内存。当构建需要扩展的系统时,这些区别提出了有意思的挑战。因此,在设计数据库架构时,要保证系统的可扩展性和完整性不会因为用户代码不必要地直接调用线程和内存管理API而受到损害。

硬件管理

在大多数中小型数据库服务器中,一种常见配置是对BIOS进行修改以启用超线程。详细信息请参考服务器的文档。可以确定超线程是否可以改进某个场景的性能。在启用超线程选项之后,其他大多数任务都与物理安装RAM、I/O适配器、磁盘适配器SCSI或SATA相关。并且,查看供应商的文档可以了解他们推荐的其他配置选项。

在几乎所有系统上,都有许多管理软件可以帮助配置、运行和维护硬件。大多数硬件供应商都有自己的管理软件,它们能够提供各种性能和选项。例如,Hewlett Packard的iLO、IBM的RSA或Dell的DRAC。

配置机房软件已经存在的可用性组

现在你已经拥有部署好的可用性组,并且你所需要的机房软件高可用性、灾难恢复、报表服务等功能也有赖与此、此时,如果存在下述情况之一,或许会引发新的需求:

应用程序升级并且依赖于可用性组内其他数据库的新数据库被创建。

公司的报表需求升级并且需要部署新的只读数据库来将主副本的负载进行转移。

确定需要灾难恢复站点并且要求在该站点上部署副本。

备份操作是在主副本上进行并影响到了性能,你被需求部署副本来进行备份任务。

已经从可用性组中合并多个数据库,现在需要移除其中一个。

分配不足的字符串

与C风格字符串相关的最常见的问题是分配不足。大多数情况下,都是因为程序员没有分配尾部的哨兵字符。当程序员假设某个固定最大大小时,也会发生字符串分配不足的情况。基本的内置字符串函数不会针对固定的大小操作——而是由多少写多少,如果常规了字符串结尾,就写入未分配的内存。

下面的代码演示了字符号攒分配不足的情况。它从网络连接读取数据,然后写入一个C风格的字符串。这个过程返回一个循环中完成,因为网络连接一次只接受少量的数据。在每个循环中调用getMoreDataO函数,这个函数返回一个指向动态内存的指针。当getMoreDataOfanhui nullptr时,表示已收到所有数据。strcatO是一个C函数,它把第二个参数的C风格字符串连接到第一个参数的C风格字符串尾部。它要求目标缓存足够大。

«1»

Powered By Z-Blog 2.0 Doomsday Build 121221

版权所有©2007-2013 南京网亚计算机有限公司
QQ:502800066(购买咨询) 1074187861(技术支持) 邮件: sales@ji-fang.cn
电话:( 025)84533318 (025)84533319 (025)66671103 13913982176 传真: (025)84533320
地址: 江苏省南京市中山东路198号龙台国际大厦1205室