数据库设定的优化:
BDE的设定:
BDE Administrator Config
Configuartin/system/int SharedMemSize=8192
Configuartin/system/int MaxfileHandles,默认为48,如不足,将出现"File handle not enouth"
Configuartin/system/int 如果调整了SharedmemSize,MaxFileHandles的话,就应该调整这个选项同,否则可能是挖东墙补西墙。默认16M。 建议:如果系统真有多余内存,可以调整数据缓冲内存(data cache),这样更有效。除非是调整了上述两个选项。
Configuartin/system/int MaxBufSize,默认2M,必须是128K的倍数。
Configuartin/system/int MinBufSize,默认128K,应该增大一点。
Driver Flags :属于BDE/IDAPI内部使用的设定。对于MS SQL Server或是Sybase来说,设为0。
SqlPassThru Mode:对于SQL Server来说,建议设为Shared NoAutoCommit。(由数据库自己控制事务。本系统大量使用存储过程,很合适。)
SqlQryMode:控制Delphi程序使用的SQL叙述是由谁来解释、执行。对于SQL Server来说,可以设为Server。但如果要Join不同数据库中的表的话,最好设为空。
例:C/S系统,DBServer为WinNT,Client为32M Windows95/98。Client超过50台。
系统要求12M,剩下20M,10-12M给应用程序,有8-10M的额外内存。
SharedMemSize=4M,避免发生内存不足的情形发生。
MaxBufSize=3M。
MaxSize=18M。
一定要调整服务器中的SharedMemSize,否则连结的Client多了会发生“内存不足”。一个连结的Client会使用4M左右的内存。所以一台128M的服务器如果服务25台Client,扣除WinNT本身需要的20M左右的内存,剩下的8M额外的内存,建议首先增加SharedMemSize的大小,最小4M以下。
MS Sql Server设定:
除了必须注意数据缓冲内存的大小之外,另一个重要的因素就是Delphi的Client Application和服务器通讯的效率了。可以设定SQL Server原生驱动程序中TNS Packet Size为4096。
通用数据库调整:
设定数据库服务器最佳化网络应用程序。点击网络,打开“本地连接”,“属性”,“Microsoft网络文件和打印机共享”,然后选择设定“最大网络应用程序使用”。