数据库连接的分配方法和装置的制造方法_3

文档序号:9750806阅读:来源:国知局
而减少在同一个数据库连接集合中并发的进程的数量,也就减少加锁的次数,甚至不需要加锁,提高获取数据库连接的性能。
[0075]另一实施例中,参见图4,该装置300还包括:
[0076]初始化模块304,用于初始化,所述初始化包括:设置数据库连接集合数组,所述数据库连接集合数组由至少两个数据库连接集合组成,设置每个数据库连接集合中包含的最小连接数量和最大连接数量,并在每个数据库连接集合中创建数量为所述最小连接数量的数据库连接。
[0077]其中,可以预先设置数据库连接集合的个数,并设置每个集合中创建的数据库连接的最小个数。
[0078]在初始化时,可以建立预设个数的数据库连接集合,并在每个数据库连接集合中创建最小个数的数据库连接。
[0079]通过创建最小个数的数据库连接,可以尽量降低资源开销。
[0080]另一实施例中,参见图4,该装置300还包括:
[0081]第一判断模块305,用于如果所述位置信息对应的数据库连接集合中不存在空闲的数据库连接,则判断在所述位置信息对应的数据库连接集合中是否能够创建新的数据库连接;
[0082]例如,在初始化时还设置每个数据库连接集合中可以创建的数据库连接的最大个数,当小于该最大个数时,表明能够创建新的数据库连接。
[0083]假设,进程的编号对应的数据库连接集合是第一连接集合,第一连接集合中当前包含的数据库连接的个数是2个,假设最大个数是5个,则确定可以创建新的数据库连接。
[0084]第二分配模块306,用于如果所述第一判断模块的判断结果是能够,则在所述位置信息对应的数据库连接集合中创建新的数据库连接,并将所述新的数据库连接分配给所述进程。
[0085]例如,第一连接集合中当前包含第一连接和第二连接,假设第一连接和第二连接都被分配了,如果可以创建新的连接,则可以创建第三连接,之后把第三连接分配给该进程。
[0086]另一实施例中,参见图4,该装置300还包括:
[0087]第二判断模块307,用于如果所述第一判断模块的判断结果是所述位置信息对应的数据库连接集合中不能创建新的数据库连接,则判断剩余的数据库连接集合中是否存在空闲的数据库连接;
[0088]其中,可以依次查找其他数据库连接集合中是否存在空闲的数据库连接,例如,进程的编号对应的数据库连接集合是第一连接集合,如果第一连接集合中没有空闲的数据库连接也不能创建新的数据库连接,则可以依次查找第二连接集合等直至找到存在空闲的数据库连接的数据库连接集合或者所有数据库连接集合都被遍历。
[0089]第三分配模块308,用于如果所述第二判断模块的判断结果是存在,则将所述空闲的数据库连接分配给所述进程。
[0090]例如,进程的编号对应的数据库连接集合是第一连接集合,如果第一连接集合中没有空闲的数据库连接也不能创建新的数据库连接,经过查找后,第二连接集合中存在空闲的数据库连接,假设是第四连接,则可以将第四连接分配给该进程。
[0091]另一实施例中,参见图4,该装置300还包括:
[0092]第三判断模块309,用于如果所述第二判断模块的判断结果是所述剩余的数据库连接集合中不存在空闲的数据库连接,则判断所述剩余的数据库连接集合中是否能够创建新的数据库连接;
[0093]例如,在初始化时还设置每个数据库连接集合中可以创建的数据库连接的最大个数,当小于该最大个数时,表明能够创建新的数据库连接。
[0094]假设,进程的编号对应的数据库连接集合是第一连接集合,第一连接集合和其他连接集合中都没有空闲的数据库连接,且第一连接集合中也不能创建新的数据库连接,则可以依次判断其他数据库连接集合中是否可以创建新的数据库连接,例如,当第二连接集合中当前包含的数据库连接的个数是2个,假设最大个数是5个,则确定可以在第二连接集合中创建新的数据库连接。
[0095]第四分配模块310,用于如果所述第三判断模块的判断结果是能够,则在所述剩余的数据库连接集合中创建新的数据库连接,并将在所述剩余的数据库连接集合中创建的新的数据库连接分配给所述进程。
[0096]例如,在第二连接集合中创建第五连接,将第五连接分配给该进程。
[0097]另一实施例中,参见图4,该装置300还包括:
[0098]处理模块311,用于通过所述进程采用所述分配的数据库连接执行操作;在所述操作执行完成后,释放所述数据库连接到原来的数据库连接集合中。
[0099]例如,通过数据库连接获取数据。
[0100]例如,第一连接集合中的第一连接分配给进程后,进程采用第一连接执行操作后,释放第一连接到第一连接集合中。
[0101]本实施例通过根据所述进程的信息,确定需要的数据库连接所在的数据库连接集合数组中的数据库连接集合的位置信息,由于数据库连接集合数组中包括至少两个数据库连接集合,可以尽量将进程分配到不同的数据库连接集合中,相当于将数据库连接进行分段,例如,第一连接和第二连接属于第一段,第三连接和第四连接属于第二段等,这样可以减少在同一个数据库连接集合中并发的进程的数量,例如,相关技术中所有进程都在一个整体的大的集合中争抢,而本实施例对大的集合进行划分,分为小的集合,在每个小的集合中可以减少进程的数量,也就减少了冲突的概率,从而减少加锁的次数,甚至不需要加锁,例如不同进程被分配到不同小的集合,此时各进程可以在不同的数据库连接集合中获取数据库连接,不需要加锁,从而提高获取数据库连接的性能。
[0102]需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0103]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0104]应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0105]本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0106]此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[01
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1