本书以.NET Framework平台为基础,详细介绍如何利用SQL Server、Oracle、DB/2或者MySQL数据库构建高度可伸缩的C#和Visual Basic.NET数据库应用程序。主要涵盖了ASP.NET和IIS的可伸缩性、可伸缩性问题管理、ADO.NET的性能因素、.NET组件和COM的利用、线程、服务和MSMQ、与各种数据库的融合、解决RDBMS上的典型问题和性能瓶颈等。此外,本书还带有许多实用的技巧和代码示例,可以帮助您提高解决实际问题的能力。\r\n 本书适合那些具有C#或Visual Basic.NET开发经验并对SQL Server、Oracle、DB/2和MySQL有一定了解的中高级开发人员。
第I部分 引言\r\n\r\n第1章 当前软件开发的问题\r\n\r\n1.1 Visual Basic 6\r\n1.2 Visual C++ 6\r\n1.3 Visual Interdev和Active Server Pages\r\n1.4 组件和部署\r\n1.5 数据库操作和可伸缩性问题\r\n1.5.1 ActiveX数据对象\r\n1.5.2 分布式事务处理\r\n1.5.3 对象池\r\n1.6 小结\r\n\r\n第2章 高性能的.NET体系结构\r\n\r\n2.1 .NET Framework\r\n2.1.1 执行\r\n2.1.2 实时编译\r\n2.1.3 中间语言(IL)\r\n2.2 .NET运行时体系结构\r\n2.2.1 .NET语言\r\n2.2.2 组件\r\n2.2.3 部署\r\n2.2.4 分布式事务\r\n2.2.5 消息队列\r\n2.2.6 对象入池\r\n2.3 性能和持久性\r\n2.3.1 .NET中的线程\r\n2.3.2 托管提供者\r\n2.3.3 连接/会话入池\r\n2.3.4 错误处理\r\n2.4 ASP.NET体系结构\r\n2.4.1 事件处理\r\n2.4.2 高速缓存\r\n2.5 元数据和版本\r\n2.6 无用单元收集\r\n2.7 小结\r\n\r\n第II部分 设计数据库和中间层组件以获得最大可伸缩性\r\n\r\n第3章 开发一行业务应用程序\r\n\r\n3.1 数据库类型\r\n3.2 锁定类型\r\n3.3 隔离级别\r\n3.4 数据库模式\r\n3.5 建立性能目标\r\n3.6 关于可伸缩性的考虑\r\n3.6.1 面向集的操作\r\n3.6.2 减少数据传输\r\n3.6.3 尽可能避免串行化\r\n3.6.4 防止死锁\r\n3.6.5 避免长期运行的操作\r\n3.6.6 关系与定义关系\r\n3.6.7 键\r\n3.6.8 索引\r\n3.6.9 JOIN\r\n3.6.10 视图\r\n3.6.11 查询计划\r\n3.6.12 存储过程\r\n3.6.13 参数化的命令\r\n3.6.14 隔离OLTP和OLAP\r\n3.7 小结\r\n\r\n第4章 事务处理\r\n\r\n4.1 事务管理\r\n4.1.1 本地事务\r\n4.1.2 分布式事务\r\n4.1.3 存储过程\r\n4.2 事务的考虑因素\r\n4.2.1 数据的一致性和井发性\r\n4.2.2 隔离级别\r\n4.2.3 可伸缩性和性能关联\r\n4.3 数据库特定的事务处理问题\r\n4.3.1 Microsoft SQL Server\r\n4.3.2 Oracle\r\n4.3.3 DB/2\r\n4.3.4 MySQL\r\n4.4 小结\r\n\r\n第5章 ADO.NET\r\n\r\n5.1 术语的快速回顾\r\n5.2 什么是ADO.NET\r\n5.2.1 托管提供者\r\n5.2.2 建立数据库连接\r\n5.2.3 针对数据库执行命令\r\n5.2.4 将数据库字段中的数据映射为数据列\r\n5.2.5 创建数据表格内的列\r\n5.2.6 数据关系\r\n5.2.7 将数据插入表格中\r\n5.2.8 数据集插入\r\n5.2.9 将图像、文件或者BLOB存储在数据库中\r\n5.2.10 从表格中读取图像\r\n5.2.11 本地事务\r\n5.3 ADO到ADO.NET再回到ADO\r\n5.4 从数据表格转换为ADO 2.x记录集\r\n5.5 .NET中的ADOX功能\r\n5.5.1 服务器端的游标和事务处理\r\n5.5.2 插入数据并且返回主键\r\n5.6 数据集的可伸缩性:对于SQL和OleDb数据提供者的分析\r\n5.6.1 数据读取器和数据集的可伸缩性\r\n5.6.2 开放式数据库连接的影响\r\n5.6.3 协同使用传统的ADO 2.x和.NET\r\n5.7 数据类型\r\n5.7.1 SqlTypes\r\n5.7.2 OLE-DB和ODBC类型\r\n5.8 小结\r\n\r\n第6章 .NET组件\r\n\r\n6.1 定义命名空间\r\n6.2 创建程序集\r\n6.2.1 程序集位置\r\n6.2.2 程序集版本控制\r\n6.2.3 程序集分布\r\n6.3 清单\r\n6.4 创建.NET组件\r\n6.4.1 WinForm组件\r\n6.4.2 Web组件\r\n6.5 在应用程序中使用组件\r\n6.5.1 WinForm应用程序\r\n6.5.2 IIS应用程序\r\n6.6 事务和性能\r\n6.6.1 基于连接的事务\r\n6.6.2 分布式事务\r\n6.7 小结\r\n\r\n第7章 与COM组件集成\r\n\r\n7.1 COM和.NET互操作\r\n7.1.1 通用的原则\r\n7.1.2 范例中的差异\r\n7.2 从.NET中调用COM\r\n7.2.1 C#和Visual Basic.NET\r\n7.2.2 ASP.NET\r\n7.2.3 性能考虑因素\r\n7.3 从COM中调用.NET组件\r\n7.3.1 编写互操作的.NET组件\r\n7.3.2 部署和注册\r\n7.4 小结\r\n\r\n第8章 线程处理和Windows服务\r\n\r\n8.1 定义线程处理\r\n8.2 了解进行线程处理的时机\r\n8.2.1 算法与业务规则\r\n8.2.2 线程处理的优势和限制\r\n8.3 创建线程\r\n8.3.1 System.Threading\r\n8.3.2 从Win32到.NET\r\n8.4 多线程的算法\r\n8.5 使用Windows服务\r\n8.5.1 服务背景\r\n8.5.2 创建Windows服务\r\n8.5.3 事件和服务\r\n8.5.4 要监控的事件\r\n8.5.5 将自定义命令发送到Windows服务\r\n8.6 了解其他命名空间\r\n8.6.1 FileSystemWatcher\r\n8.6.2 网络请求\r\n8.7 小结\r\n\r\n第9章 消息排队集成\r\n\r\n9.1 消息排队基础\r\n9.1.1 同步操作\r\n9.1.2 异步操作\r\n9.1.3 什么是消息和队列\r\n9.1.4 什么是MSMQ\r\n9.1.5 发送数据\r\n9.1.6 接收数据\r\n9.1.7 队列\r\n9.1.8 在.NET中使用MSMQ API\r\n9.1.9 消息的编程API\r\n9.1.10 MessageQueueAccessRights\r\n9.1.11 MSMQ事务\r\n9.2 小结\r\n\r\n第III部分 特定数据库伸缩问题\r\n\r\n第10章 SQL Server\r\n\r\n10.1 连接到SQL Server\r\n10.2 SQL Data Provider\r\n10.2.1 COM+和SQL Data Provider\r\n10.2.2 利用SQL Data Provider连接入池\r\n10.2.3 SQL Client事务\r\n10.2.4 SQL客户程序代码示例\r\n10.3 OLE-DB Data Provider\r\n10.3.1 OLE-DB事务\r\n10.3.2 OLE-DB客户代码示例\r\n10.4 ODBC Data Provider\r\n10.4.1 早期的API\r\n10.4.2 ODBC Data Provider事务\r\n10.5 .NET中的Classic ADO 2.x\r\n10.5.1 无事务\r\n10.5.2 手动事务\r\n10.5.3 COM+分布式事务\r\n10.6 其他通信方法\r\n10.7 利用SQL Server的XML访问SQL\r\n10.7.1 SqlXmlCommand方法\r\n10.7.2 SqlXmlCommand属性\r\n10.7.3 SqlXmlParameter\r\n10.7.4 SqlxmlAdspter\r\n10.8 SQL Server体系结构\r\n10.8.1 网络/通信库\r\n10.8.2 SQL Server引擎\r\n10.8.3 锁定提示\r\n10.8.4 锁定超时选项和死锁\r\n10.8.5 主键信息\r\n10.9 综合比较\r\n10.9.1 关于测试应用程序\r\n10.9.2 综合性能分析\r\n10.10 索引优化\r\n10.10.1 SQL Profiler\r\n10.10.2 Index Tuning Wizard(ITW)\r\n10.11 小结\r\n\r\n第11章 Oracle\r\n\r\n11.1 Oracle数据库平台\r\n11.1.1 Oracle数据库企业版\r\n11.1.2 Oracle数据库标准版\r\n11.1.3 Oracle数据库个人版\r\n11.1.4 Oracle数据库Lite版\r\n11.2 Oracle数据库中的功能和术语\r\n11.3 Oracle 9i数据库体系结构\r\n11.3.1 Oracle实例\r\n11.3.2 系统全局区域\r\n11.3.3 后台进程\r\n11.3.4 共享服务器体系结构\r\n11.3.5 专用服务器配置\r\n11.4 访问Oracle数据库\r\n11.4.1 Oracle通信基础\r\n11.4.2 用于Oracle的Microsoft OLE-DB Provider\r\n11.4.3 用于Oracle的Microsoft ODBC Driver\r\n11.4.4 Oracle OLE-DB驱动程序\r\n11.4.5 Oracle ODBC驱动程序\r\n11.4.6 主键\r\n11.5 性能优化\r\n11.5.1 调整SQL\r\n11.5.2 索引和索引策略\r\n11.5.3 实例和空间管理\r\n11.6 小结\r\n\r\n第12章 DB/2通用数据库\r\n\r\n12.1 DB/2平台\r\n12.1.1 用于Windows NT的DB/2\r\n12.1.2 用于iSeries 400(AS/400)的DB/2\r\n12.2 连接选项\r\n12.2.1 IBM DB/2 OLE-DB驱动程序\r\n12.2.2 IBM DB/2 ODBC驱动程序\r\n12.3 使用ADO.NET和ADO\r\n12.3.1 ADO.NET性能\r\n12.3.2 ADO性能\r\n12.4 连接类型对应用程序的影响\r\n12.4.1 WinForm应用程序\r\n12.4.2 N层WinForm应用程序\r\n12.5 小结\r\n\r\n第13章 MySQL\r\n\r\n13.1 连接选项\r\n13.1.1 MyODBC驱动程序\r\n13.1.2 MyOLE-DB驱动程序\r\n13.1.3 MySQL API\r\n13.2 MySQL表类型\r\n13.2.1 MyISAM表类型\r\n13.2.2 Merge表类型\r\n13.2.3 Heap表类型\r\n13.2.4 InnoDB表类型\r\n13.2.5 BDB\r\n13.2.6 InnoDB和MyISAM表类型的比较\r\n13.3 MySQL服务器状态\r\n13.4 MySQL SQL的独特方面\r\n13.4.1 MySQL没有的通用功能\r\n13.4.2 在MySQL中的扩展\r\n13.5 驱动程序对应用程序的作用\r\n13.6 使用ADO\r\n13.6.1 ADO.NET性能\r\n13.6.2 ADO性能\r\n13.7 处理MySQL瓶颈\r\n13.7.1 表级锁定的影响\r\n13.7.2 受限的事务支持的影响\r\n13.7.3 分布式事务的影响\r\n13.7.4 对象入池的影响\r\n13.8 性能\r\n13.9 小结\r\n\r\n附录A Timesheet应用程序概述\r\n\r\nA.1 底层数据库表\r\nA.2 数据条目部分\r\nA.3 雇员类型\r\nA.4 Admin部分\r\nA.5 小结\r\n\r\n附录B 编程和开发命名标准\r\n\r\nB.1 通用命名约定\r\nB.2 数据库对象\r\nB.3 组件和方法调用\r\nB.4 数据库访问\r\nB.5 命名空间的命名标准\r\nB.6 Microsoft的命名规则\r\nB.7 小结\r\n\r\n附录C 资源\r\n\r\nC.1 Scalability.NET\r\nC.2 .NET资源\r\nC.3 ASP.NET\r\nC.4 C#\r\nC.5 Visual Basic.NET\r\nC.6 SQL Server\r\nC.7 Oracle资源\r\nC.8 DB/2资源\r\nC.9 MySQL资源