在Windows服务器上运行的Oracle数据库连接的典型最大数量是多less?

我们正在维护一个服务于大量客户端的数据库服务器。 每个客户端通常运行多个客户端应用程序。 数据库服务器(Oracle 9i)的连接总数达到高峰负载时的800个连接。 Windows 2003服务器开始用尽内存。 现在我们正在计划迁移到64位Windows,以获得更高的内存容量。 作为一名开发人员,我build议转向使用连接池的多层架构,我相信这是解决这个问题的一个自然办法。 然而,为了支持我的想法,我想要的信息:

  1. Oracle数据库允许的典型连接数是多less?
  2. 数字连接太高时有什么问题? 太多的内存消耗? 或打开了太多的sockets? 或线程之间的上下文切换?
  3. 具体而言,Oracle Forms应用程序如何在不面临此问题的情况下扩展到数千用户? Oracle RAC是否适用于这种情况?

我相信这个问题的答案应该取决于很多因素,比如所使用的硬件的确切规格。 我期待一个粗略的估计或者来自现实世界的一些经验。

  • 你如何从脚本中使用Oracle的工具?
  • 在BIOS中禁用CPU核心?
  • 我如何知道是否安装并激活了Oracle数据库?
  • Oracle:如何查找表使用的存储空间?
  • Oracle数据库在VMWare上?
  • 为什么在具有相同硬件/数据的Oracle服务器上,此SQL运行速度比另一个Oracle服务器快得多?
  • 2 Solutions collect form web for “在Windows服务器上运行的Oracle数据库连接的典型最大数量是多less?”

    为了处理数据库连接,需要单独的Oracle进程,这可能需要高达2 MB的内存。 通常,Oracle安装会根据可用内存和CPUconfiguration来限制并发连接的数量。

    例如,假设您在数据库上有50个客户帐户,每个帐户最多有100个并发连接。 如果每个账户平均只使用25%= 25个连接,那么总的平均数将是1250个连接。 这意味着只有2500 MB用于存储特定于连接的数据。 上下文切换还需要处理器时间。

    通过设置并发连接的限制,您可以确保您的事务处理完成,并且一些非常活跃的客户帐户不会开始阻止您的数据库服务器的资源。 连接数量受会话参数和许可限制。 sessions参数控制包括Oracle后台进程在内的连接总数。

    使用64位Windows平台向服务器添加更多内存是一个不错的主意,因为您不必花费太多,即使增加了16 GB的内存。

    有关configuration如何在实际工作负载情况下执行的详细信息,请阅读Oracle电子商务套件标准基准 。 通常他们有大量的连接。

    在Windows上的Oracle打开用户线程,而不是进程,afaik。 (当用户连接崩溃时,这并不好。

    这意味着你受到记忆的限制; 线程和每个用户PGA的会话开销几MB,上下文和SGA取决于你在做什么。 为了轻松工作(==用户一次又一次地执行相同的简单查询),您只需要计算会话。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.