共享内存连接使用共享内存的一块区域作为客户机和数据库服务器相互通信所通过的通道。客户机不能与数据库服务器建立多个共享内存连接。
图: 通过共享内存连接进行的客户机应用程序和数据库服务器通信。
共享内存提供对数据库服务器的快速访问,但是它会引起一些安全性方面的风险。错误或恶意的应用程序可能删除或查看其自己的或其他本地用户的消息缓冲区。 如果客户机应用程序执行显式内存寻址或过度索引数据数组,那么共享内存通信也容易受到编程错误的影响。如果使用的是网络通信或流管道,那么这些错误不会影响数据库服务器。
图: 客户机应用程序与名为 river_shm 的数据库服务器之间的共享内存连接。
DBSERVERNAME river_shm
#dbservername nettype hostname servicename options river_shm onipcshm river rivershm
CONNECT TO '@river_shm'
对于共享内存连接,无需网络配置文件中的任何条目。对 sqlhosts 文件的 hostname 和 servicename 字段使用任意值。