FR 3106224 A1 20210716 FR 2000264 A 20200113 Les modes de réalisation de la présente invention fournissent un procédé, un système et un produit de programme informatique pour une programmation optimale de requêtes pour l’option d’utilisation des ressources. Dans un mode de réalisation de l’invention, un procédé pour la programmation optimale de requêtes comprend la réception dans un système de traitement de données de récupération d’informations à un moment contemporain, d’une demande de report de l’exécution d’une requête spécifiée à un moment ultérieur après le moment contemporain. Le procédé comprend en outre la détermination d’une fréquence de changement des données correspondant à un champ référencé dans la requête spécifiée. Ensuite, à condition que la fréquence de changement soit inférieure à une valeur seuil, un moment intermédiaire avant le moment ultérieur mais après le moment contemporain peut être identifié et la requête spécifiée programmée pour être exécutée au moment intermédiaire au lieu du moment ultérieur. Mais, autrement, la requête spécifiée peut être programmée au moment ultérieur comme demandé à l’origine. Figure pour l’abrégé: Figure 1 PROGRAMMATION OPTIMALE DE REQUÊTES POUR L’OPTIMISATION DE L’UTILISATION DE RESSOURCES Domaine technique de l’invention La présente invention concerne le domaine de la programmation de requêtes et plus particulièrement la programmation préalable de requêtes pour une exécution avant un moment d’exécution de requête demandée. Arrière-plan technique Une requête est une demande d’informations d’un système de récupération d’information. Il y a trois procédés généraux pour poser des requêtes : par menu, par exemple et par formulation de langage de requête. Dans le premier cas, une requête est formulée et émise sur la base de la sélection de paramètres dans un menu. Dans le second cas, le système de récupération d’informations présente un enregistrement vierge et permet à l’utilisateur final de spécifier les champs et les valeurs qui définissent la requête. Dans le troisième cas, l’utilisateur final formule la requête en utilisant une requête stylisée écrite dans un langage de requête. Ce dernier procédé est le plus complexe car il nécessite l’utilisation d’un langage spécialisé, mais il est aussi le plus puissant car c’est le mode d’interrogation d’un système de récupération d’informations le moins contraignant. Les requêtes sont généralement émises soit à la demande par l’intermédiaire d’une interface de requête, soit par programmation au moment de l’exécution d’un programme informatique. Mais les requêtes peuvent également être émises en mode batch. C’est-à-dire qu’une requête peut être spécifiée à un moment donné, mais l’exécution de la requête sur le système de récupération d’informations peut être reportée à un moment ultérieur. A cet égard, dans un système de récupération d’informations, il est courant que plusieurs utilisateurs soumettent simultanément des requêtes à la base de données pour exécution. Par conséquent, si le système de récupération d’informations ne dispose pas de ressources informatiques suffisantes pour exécuter simultanément toutes les requêtes soumises, le système de récupération d’informations doit différer l’exécution d’une ou de plusieurs de ces requêtes alors que seul un sous-ensemble des requêtes peut être traité immédiatement. Le procédé qui consiste à déterminer quelles requêtes doivent être différées et à quel moment les requêtes différées doivent être exécutées est connu sous le nom de programmation des requêtes. Une façon d’effectuer la programmation des requêtes est d’exécuter les requêtes entrantes dans l’ordre dans lequel elles arrivent ; c’est ce qu’on appelle l’approche "premier arrivé, premier servi ". Cependant, l’approche premier arrivé, premier servi ne permet pas de différencier les requêtes qui ont des exigences de temps de réponse différentes, certaines requêtes étant plus sensibles au temps que d’autres. Si les requêtes sont simplement programmées selon l’ordre d’arrivée, certaines requêtes sensibles au temps peuvent être obligées d’attendre après des demandes non sensibles au temps, ce qui peut nuire à la facilité d’utilisation et à la réactivité du système de récupération d’informations. La programmation de requêtes peut également être effectuée en fonction d’une priorité fixe. Dans la programmation à priorité fixe, on attribue à chaque requête une priorité basée sur une ou plusieurs propriétés connues au moment de l’arrivée de la requête, comme l’identité ou le type du demandeur de la requête. Par la suite, chaque requête peut être planifiée en fonction d’une priorité attribuée. Comme on peut le voir, la programmation à priorité fixe permet d’éviter les problèmes de l’approche du premier arrivé, premier servi, puisque les requêtes sensibles au temps peuvent être priorisées par rapport aux requêtes moins sensibles au temps. Cependant, la programmation à priorité fixe ne peut pas tenir compte des requêtes "lourdes" qui prennent un temps d’exécution relativement long et des requêtes "légères" qui prennent un temps d’exécution relativement court, de l’ordre de la milliseconde ou de la seconde par exemple. Les modes de réalisation de la présente invention comblent les lacunes de l’état de l’art en ce qui concerne la programmation de requêtes et fournissent un procédé, un système et un produit de programme informatique nouveaux et non évidents pour la programmation optimale de requêtes pour l’option d’utilisation des ressources. Dans un mode de réalisation de l’invention, un procédé pour la programmation optimale de requêtes comprend la réception dans un système de traitement de données de récupération d’informations à un moment contemporain, d’une demande de report d’exécution de requête d’une requête spécifiée à un moment ultérieur après le moment contemporain. Le procédé comprend en outre la détermination d’une fréquence de changement de données correspondant à un champ référencé dans la requête spécifiée. Ensuite, à condition que la fréquence de changement soit inférieure à une valeur seuil, un moment intermédiaire avant le moment ultérieur mais après le moment contemporain peut être identifié et la requête spécifiée peut être programmée pour être exécutée au moment intermédiaire au lieu du moment ultérieur. Mais, autrement, la requête spécifiée peut être programmée à un moment ultérieur comme demandé à l’origine. Dans un mode de réalisation de l’invention, le moment intermédiaire est identifié en localisant un moment qui est sous-programmé avec moins de requêtes programmées consommant moins de ressources du système de traitement de données de récupération d’informations que les ressources disponibles du système de traitement de données de récupération d’informations au moment localisé et qui a suffisamment de ressources disponibles pour supporter l’exécution de la requête spécifiée. Dans un autre aspect du mode de réalisation, une multiplicité de demandes sont reçues pour la programmation de plusieurs requêtes différentes à un moment ultérieur et un coût d’exécution estimé est calculé pour chacune des différentes requêtes. Par exemple, le coût d’exécution estimé pour chacune des différentes requêtes peut être calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. Ensuite, les différentes requêtes peuvent être filtrées en un sous-ensemble, chacune avec un coût d’exécution estimé correspondant qui dépasse une valeur seuil. Alternativement, les différentes requêtes peuvent être filtrées vers un sous-ensemble de requêtes, chacune avec un coût d’exécution estimé correspondant qui est inférieur à une valeur seuil. Enfin, il est possible de déterminer, pour chaque requête correspondante parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble. Ainsi, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, on peut identifier le moment intermédiaire avant le moment ultérieur mais après le moment contemporain et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Dans un autre mode de réalisation de l’invention, un système de traitement de données de récupération d’informations est adapté pour une programmation optimale de requêtes. Le système comprend une plate-forme informatique hôte comportant un ou plusieurs ordinateurs dotés chacun d’une mémoire et d’au moins un processeur. Le système comprend en outre une interface de requête couplée à une base de données. L’interface de requête reçoit de demandeurs, par l’intermédiaire d’un réseau de communication informatique, des demandes de programmation de requêtes par rapport à la base de données et, en réponse, programme l’exécution des requêtes de manière à renvoyer différents ensembles de résultats aux demandeurs. Enfin, le système comprend un module de programmation optimale de requêtes. Le module comprend des instructions de programme informatique qui, lorsqu’elles sont exécutées dans la mémoire de la plate-forme informatique hôte, sont exploitables pour recevoir, à un moment contemporain, une demande de report d’exécution de requête d’une requête spécifiée à un moment ultérieur après le moment contemporain et pour déterminer une fréquence de changement des données correspondant à un champ référencé dans la requête spécifiée. Les instructions sont en outre utilisables pour identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et pour programmer l’exécution de la requête spécifiée au moment intermédiaire au lieu du moment ultérieur, à condition que la fréquence de changement soit inférieure à une valeur seuil. Mais, autrement, les instructions de programme sont utilisables simplement pour programmer la requête spécifiée au moment ultérieur. D’autre aspects de l’invention seront exposés en partie dans la description qui suit et en partie seront évidents dans la description, ou pourront être appris par la pratique de l’invention. Les aspects de l’invention seront réalisés et atteints au moyen des éléments et combinaisons particulièrement indiqués dans les revendications en annexe. Il est entendu que la description générale qui précède et la description détaillée qui suit sont toutes deux données à titre d’exemple et explicatives et ne sont pas restrictives à l’égard de l’invention, telle que revendiquée. Brève description des figures Les dessins accompagnant, qui sont incorporés dans le présent fascicule et en font partie intégrante, illustrent des modes de réalisation de l’invention et servent, avec la description, à expliquer les principes de l’invention. Les modes de réalisation illustrés ici sont actuellement préférés, étant entendu, toutefois, que l’invention ne se limite pas aux arrangements et aux instruments précis montrés, dans lesquels : La figure 1 est l’illustration imagée d’un procédé pour la programmation optimale de requêtes pour un système de traitement de données de récupération d’informations ; La figure 2 est une illustration schématique d’un système de traitement de données de récupération d’informations configuré pour une programmation optimale de requêtes ; et, La figure 3 est un organigramme illustrant un procédé de programmation optimale de requêtes pour un système de traitement de données de récupération d’informations. Description détaillée de l’invention Les modes de réalisation de l’invention permettent la programmation optimale de requêtes d’une ou plusieurs requêtes dans un système de traitement de données de récupération d’informations. Conformément à un mode de réalisation de l’invention, différentes demandes sont reçues à un moment contemporain dans un système de récupération d’informations demandant le report de l’exécution des requêtes respectives à un moment ultérieur. L’une des requêtes est alors traitée pour identifier les champs concernés et une volatilité de changement des champs est déterminée. Dans la mesure où il est déterminé qu’une requête parmi les requêtes comporte un champ dont la volatilité dépasse un niveau seuil acceptable, la demande de report pour cette requête est honorée et la requête est programmée à un moment ultérieur. Mais, dans la mesure où il est déterminé qu’une requête parmi les requêtes a un champ déterminé comme n’ayant pas de volatilité au-delà du niveau seuil acceptable, la demande de report est modifiée à un moment qui est intermédiaire entre le moment contemporain et le moment ultérieur, de manière à réduire la charge d’exécution des requêtes au moment ultérieur. Dans une illustration supplémentaire d’un exemple de mode de réalisation de l’invention, la figure 1 illustre de manière imagée un procédé de programmation optimale de requêtes pour un système de traitement de données de récupération d’informations. Comme le montre la figure 1, un ensemble de demandes 110 sont reçues dans le système de traitement de données de récupération d’informations, chacune des demandes 110 cherchant à reporter la programmation d’une requête correspondante d’une base de données à un moment ultérieur 120. En option, une partie de chaque requête est sélectionnée et comparée à une structure de données de coûts d’exécution 130 associés à différentes parties de requête afin de faire correspondre la partie sélectionnée à une entrée de la structure de données indiquant un coût d’exécution probable de la requête sélectionnée. Un filtre 140 est ensuite appliqué à l’ensemble des requêtes pour produire un sous-ensemble 160 des demandes de requêtes 110 avec des coûts d’exécution associés 130 suffisamment significatifs pour justifier une optimisation. Chacune des requêtes 110 du sous-ensemble 160 est ensuite testée pour la volatilité des données. Plus précisément, pour chaque demande correspondantes parmi les demandes 110 du sous-ensemble 160, un champ associé à une requête de la demande correspondante parmi les demandes 110 est mis en correspondance avec une structure de données indiquant une volatilité connue 150 des différents champs de la base de données - à savoir, pour chaque champ, la fréquence à laquelle les données sous-jacentes changent. Une fois la correspondance établie, la volatilité déterminée 150 pour un champ d’une requête associée est comparée à un seuil spécifié et pour celles des requêtes 110 du sous-ensemble 160 qui ont une volatilité supérieure au seuil, la requête correspondante parmi les requêtes est affectée à une programmation 180 comme demandé au moment ultérieur 120. Mais, pour les requêtes 110 du sous-ensemble 160 dont la volatilité est inférieure au seuil, la requête correspondante parmi les requêtes est affectée à un programme 190 à un moment intermédiaire 170 avant le moment ultérieur 120. À cet égard, le moment intermédiaire 170 peut être choisi en fonction de la disponibilité prévue des ressources informatiques accessibles par le système de récupération d’informations à ce moment et de la capacité excédentaire perçue des ressources informatiques pendant ce moment pour traiter des requêtes supplémentaires. Le procédé décrit à la figure 1 peut être mis en œuvre dans un système de traitement des données de récupération d’informations. La figure 2 illustre de façon schématique un système de traitement de données de récupération d’informations configuré pour une programmation optimale de requêtes. Le système comprend une plate-forme informatique hôte 210 qui comprend un ou plusieurs ordinateurs, chacun avec de la mémoire et au moins un processeur. Le système comprend également une interface de requête 260 vers une base de données 250 (ou un modèle de données modélisant des données dans la base de données 250). L’interface de requête 260 est configurée pour recevoir des requêtes provenant d’un réseau de communication informatique 220 de clients de requête 240 s’exécutant dans des dispositifs informatiques 230 respectivement différents, et pour programmer l’exécution de chacune des interrogations reçues dans un programme de requête 270, un moment spécifique (jour/date/heure ou toute combinaison de ceux-ci) étant attribué à chacune des requêtes pour exécution. L’interface d’interrogation 260 est en outre configurée pour fournir aux clients demandeurs parmi les clients de requête 240 des résultats correspondants pour les requêtes soumises et exécutées. Il est important de noter que le système comprend un module de programmation optimale de requêtes 300. Le module 300 comprend des instructions de programme informatique qui, lorsqu’elles sont exécutées dans la plate-forme de calcul hôte 210, permettent de recevoir des clients de requête 240 des demandes individuelles de report de l’exécution d’une requête spécifiée à un moment ultérieur. Les instructions de programme informatique sont en outre activées lors de l’exécution pour consulter une table de coûts d’exécution 290 corrélant différentes parties de requête à des coûts d’exécution connus afin d’identifier une entrée dans la table 290 correspondant à une partie de la requête spécifiée de manière à prévoir un coût d’exécution de la requête spécifiée. Les instructions de programme informatique sont en outre activées pendant l’exécution, dans la mesure où le coût d’exécution prédit dépasse une valeur seuil, pour identifier un champ impliqué par la requête spécifiée et déterminer dans une table 280 de volatilité des données une volatilité connue des données pour le champ identifié. Enfin, les instructions de programme informatique sont activées pendant l’exécution pour sélectionner un moment intermédiaire avant le moment ultérieur de programmation de la requête spécifiée dans la programmation de requête 270, tant que la volatilité déterminée pour la requête spécifiée est inférieure à la valeur seuil. Sinon, les instructions de programme informatique sont activées pour honorer la demande de report en programmant la requête spécifiée dans le programme de requête 270 à un moment ultérieur. Pour illustrer encore plus le fonctionnement du module 300 programmeur de requêtes optimales, la figure 3 est un organigramme illustrant un procédé de programmation optimale de requêtes pour un système de traitement de données de récupération d’information. A partir du bloc 310, une demande de report d’une requête spécifiée à un moment ultérieur est reçue et dans le bloc 320, la requête spécifiée est identifiée dans la requête avec le moment ultérieur. Ensuite, dans le bloc 330, une partie de la requête spécifiée est sélectionnée et dans le bloc 340, un champ de la base de données ou du modèle de données concerné par la requête spécifiée est identifié. Dans le bloc 350, une volatilité du champ est récupérée. Par la suite, dans le bloc 360, il est déterminé si la volatilité récupérée dépasse une valeur seuil. Si ce n’est pas le cas, un moment intermédiaire avant le moment ultérieur pendant lequel les ressources de traitement du système de récupération d’informations démontrent une capacité excédentaire est sélectionné dans le bloc 370. Par conséquent, dans le bloc 380, l’exécution de la requête spécifiée est planifiée au moment intermédiaire. Sinon, dans le bloc 390, l’exécution de la requête spécifiée est programmée à un moment ultérieur. La présente invention peut être incorporée dans un système, un procédé, un programme informatique ou toute combinaison de ceux-ci. Le programme informatique peut comprendre un support de stockage lisible par ordinateur ou un support sur lequel se trouvent des instructions de programme lisibles par ordinateur pour amener un processeur à exécuter des aspects de la présente invention. Le support de stockage lisible par ordinateur peut être un dispositif tangible qui peut conserver et stocker des instructions à utiliser par un dispositif d’exécution d’instructions. Le support de stockage lisible par ordinateur peut être, par exemple, un dispositif de stockage électronique, un dispositif de stockage magnétique, un dispositif de stockage optique, un dispositif de stockage électromagnétique, un dispositif de stockage semi-conducteur ou toute combinaison appropriée de ce qui précède, sans toutefois s’y limiter. Les instructions de programme lisibles par ordinateur décrites ici peuvent être téléchargées à partir d’un support de stockage lisible par ordinateur ou sur un ordinateur externe ou un périphérique de stockage externe via un réseau, sur les dispositifs de calcul/traitement respectifs. Les instructions lisibles par ordinateur peuvent être exécutées entièrement sur l’ordinateur de l’utilisateur, en partie sur l’ordinateur de l’utilisateur, en tant que progiciel autonome, en partie sur l’ordinateur de l’utilisateur et en partie sur un ordinateur distant ou entièrement sur l’ordinateur ou le serveur distant. Certains aspects de la présente invention sont décrits ici à l’aide d’organigrammes et/ou de schémas fonctionnels de procédés, d’appareils (systèmes) et de produits de programmes informatiques sur la base des modes de réalisation de l’invention. Il est entendu que chaque bloc des organigrammes et/ou des schémas fonctionnels, ainsi que les combinaisons de blocs des organigrammes et/ou des schémas fonctionnels, peuvent être réalisés au moyen d’instructions de programme lisibles par ordinateur. Ces instructions de programme lisibles par ordinateur peuvent être fournies à un processeur d’un ordinateur à usage général, d’un ordinateur à usage spécifique ou d’un autre appareil de traitement de données programmable pour produire une machine, de sorte que les instructions, qui sont exécutées par l’intermédiaire du processeur de l’ordinateur ou d’un autre appareil de traitement de données programmable, créent des moyens pour exécuter les fonctions/actions spécifiées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. Ces instructions de programme lisibles par ordinateur peuvent également être stockées dans un support de stockage lisible par ordinateur qui peut diriger un ordinateur, un appareil de traitement de données programmable et/ou d’autres dispositifs pour fonctionner d’une manière particulière, de sorte que le support de stockage lisible par ordinateur dans lequel sont stockées des instructions comprend un article de fabrication comprenant des instructions qui exécutent des aspects des fonctions/actions spécifiées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. Les instructions de programme lisibles par ordinateur peuvent également être chargées sur un ordinateur, un autre appareil de traitement de données programmable ou un autre dispositif pour provoquer l’exécution d’une série d’étapes opérationnelles sur l’ordinateur, un autre appareil programmable ou un autre dispositif pour produire un procédé exécuté par ordinateur, de sorte que les instructions qui exécutent sur l’ordinateur, un autre appareil programmable ou un autre dispositif mettent en œuvre les fonctions/actions indiquées dans le ou les blocs des organigrammes et/ou des schémas fonctionnels. L’organigramme et les schémas fonctionnels présentés dans les figures illustrent l’architecture, la fonctionnalité et le fonctionnement d’implémentations possibles de systèmes, de procédés et de produits de programmes informatiques sur la base des diverses modes de réalisation de la présente invention. À cet égard, chaque bloc de l’organigramme ou des schémas fonctionnels peut représenter un module, un segment ou une partie d’instructions, qui comprend une ou plusieurs instructions exécutables pour mettre en œuvre la ou les fonctions logiques spécifiées. Dans certaines implémentations alternatives, les fonctions notées dans le bloc peuvent se produire dans l’ordre indiqué dans les figures. Par exemple, deux blocs montrés successivement peuvent, en fait, être exécutés sensiblement simultanément, ou les blocs peuvent parfois être exécutés dans l’ordre inverse, sur la base de la fonctionnalité impliquée. Il convient également de noter que chaque bloc des schémas fonctionnels et/ou des organigrammes, et les combinaisons de blocs des schémas fonctionnels et/ou des organigrammes, peuvent être mis en œuvre par des systèmes matériels spéciaux qui effectue les fonctions ou les actes spécifiés ou exécutent des combinaisons de matériel spécial et d’instructions informatiques. Enfin, la terminologie utilisée dans le présent document ne vise qu’à décrire des modes de réalisation particuliers et ne vise pas à limiter l’invention. Dans le présent document, les formes singulières "un/une", et "le/la" s’entendent également du pluriel, à moins que le contexte n’indique clairement le contraire. Il sera en outre entendu que les termes "comprend" et/ou "comprenant", lorsqu’ils sont utilisés dans la présente spécification, précisent la présence de caractéristiques, entiers, étapes, opérations, éléments et/ou composants indiqués, mais n’excluent pas la présence ou l’ajout d’une ou plusieurs autres caractéristiques, entiers, étapes, opérations, éléments, composants et/ou groupes de ceux-ci. Les structures, matériaux, actes et équivalents correspondants de tous les moyens ou éléments de l’étape et de la fonction dans les revendications ci-dessous sont destinés à inclure toute structure, tout matériau ou tout acte pour exécuter la fonction en combinaison avec d’autres éléments revendiqués comme revendiqué spécifiquement. La description de la présente invention a été présentée à des fins d’illustration et de description, mais ne se veut pas exhaustive ou limitée à l’invention sous la forme divulguée. De nombreuses modifications et variations seront apparentes aux hommes du métier sans s’écarter de la portée et de l’esprit de l’invention. Le mode de réalisation a été sélectionné et décrit afin d’expliquer au mieux les principes de l’invention et son application pratique, et de permettre à d’autres hommes du métier de comprendre l’invention pour diverses modes de réalisation avec diverses modifications adaptées à l’usage particulier envisagé. Après avoir ainsi décrit l’invention de la présente demande en détail et par référence à ses modes de réalisation, il apparaîtra que des modifications et des variations sont possibles sans s’écarter de la portée de l’invention définie dans les revendications ci-jointes comme suit : Procédé de programmation optimale de requêtes comprenant les étapes consistant à : recevoir, dans un système de traitement de données de récupération d’informations à un moment contemporain, une demande de report d’exécution de requête d’une requête spécifiée à un moment ultérieur après le moment contemporain ; déterminer une fréquence de changement de données correspondant à un champ référencé dans la requête spécifiée ; à condition que la fréquence de changement soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer la requête spécifiée pour exécution au moment intermédiaire au lieu du moment ultérieur, sinon programmer la requête spécifiée au moment ultérieur. Procédé selon la revendication 1, dans lequel le moment intermédiaire est identifié en localisant un moment qui est sous-programmé avec moins de requêtes programmées consommant moins de ressources du système de traitement de données de récupération d’informations que les ressources disponibles du système de traitement de données de récupération d’informations au moment localisé et qui a suffisamment de ressources disponibles pour supporter l’exécution de la requête spécifiée. Procédé selon la revendication 1, comprenant en outre les étapes consistant à : recevoir une multiplicité de demandes pour programmer plusieurs requêtes différentes au moment ultérieur ; calculer un coût d’exécution estimé pour chacune des différentes requêtes ; filtrer les différentes requêtes en un sous-ensemble de requêtes ayant chacune un coût d’exécution estimé correspondant qui dépasse une valeur seuil ; déterminer pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble ; et, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Procédé selon la revendication 1, comprenant en outre les étapes consistant à : recevoir une multiplicité de demandes pour programmer plusieurs requêtes différentes au moment ultérieur ; calculer un coût d’exécution estimé pour chacune des différentes requêtes ; filtrer les différentes requêtes en un sous-ensemble de requêtes ayant chacune un coût d’exécution estimé correspondant qui n’atteint pas une valeur seuil ; déterminer pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble ; et, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Procédé selon la revendication 3, dans lequel le coût d’exécution estimé pour chacune des différentes requêtes est calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. Procédé selon la revendication 4, dans lequel le coût d’exécution estimé pour chacune des différentes requêtes est calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. Système de traitement de données de récupération d’informations adapté pour une programmation optimale de requêtes, le système comprenant : une plate-forme de calcul hôte comprenant un ou plusieurs ordinateurs ayant chacun une mémoire et au moins un processeur ; une interface de requête couplée à une base de données et recevant de demandeurs, par l’intermédiaire d’un réseau de communication informatique, des demandes pour programmer des requêtes par rapport à la base de données, programmant les requêtes pour une exécution et renvoyant aux demandeurs des ensembles de résultats différents en réponse aux requêtes ; et, un module de programmation optimale de requêtes comprenant des instructions de programme informatique qui, lors de leur exécution dans la mémoire de la plate-forme informatique hôte, exécutent les étapes consistant à : recevoir à un moment contemporain, une demande de report d’exécution de requête d’une requête spécifiée à un moment ultérieur après le moment contemporain ; déterminer une fréquence de changement de données correspondant à un champ référencé dans la requête spécifiée ; à condition que la fréquence de changement soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer la requête spécifiée pour exécution au moment intermédiaire au lieu du moment ultérieur, sinon programmer la requête spécifiée au moment ultérieur. Système selon la revendication 7, dans lequel le moment intermédiaire est identifié en localisant un moment qui est sous-programmé avec moins de requêtes programmées consommant moins de ressources du système de traitement de données de récupération d’informations que les ressources disponibles du système de traitement de données de récupération d’informations au moment localisé et qui a suffisamment de ressources disponibles pour supporter l’exécution de la requête spécifiée. Système selon la revendication 7, dans lequel les instructions de programme exécutent en outre les étapes consistant à : recevoir une multiplicité de demandes pour programmer plusieurs requêtes différentes au moment ultérieur ; calculer un coût d’exécution estimé pour chacune des différentes requêtes ; filtrer les différentes requêtes en un sous-ensemble de requêtes ayant chacune un coût d’exécution estimé correspondant qui dépasse une valeur seuil ; déterminer pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble ; et, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Système selon la revendication 7, dans lequel les instructions de programme exécutent en outre les étapes consistant à : recevoir une multiplicité de demandes pour programmer plusieurs requêtes différentes au moment ultérieur ; calculer un coût d’exécution estimé pour chacune des différentes requêtes ; filtrer les différentes requêtes en un sous-ensemble de requêtes ayant chacune un coût d’exécution estimé correspondant qui n’atteint pas une valeur seuil ; déterminer pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble ; et, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Système selon la revendication 9, dans lequel le coût d’exécution estimé pour chacune des différentes requêtes est calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. Système selon la revendication 10, dans lequel le coût d’exécution estimé pour chacune des différentes requêtes est calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. Produit de programme informatique pour une programmation optimale de requêtes, le produit de programme informatique comprenant un support de stockage lisible par ordinateur ayant des instructions de programme incorporées avec celui-ci, les instructions de programme étant exécutables par un dispositif pour amener le dispositif à exécuter un procédé comprenant les étapes consistant à : recevoir, dans un système de traitement de données de récupération d’informations à un moment contemporain, une demande de report d’exécution de requête d’une requête spécifiée à un moment ultérieur après le moment contemporain ; déterminer une fréquence de changement de données correspondant à un champ référencé dans la requête spécifiée ; à condition que la fréquence de changement soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer la requête spécifiée pour exécution au moment intermédiaire au lieu du moment ultérieur, sinon programmer la requête spécifiée au moment ultérieur. Produit de programme informatique selon la revendication 13, dans lequel le moment intermédiaire est identifié en localisant un moment qui est sous-programmé avec moins de requêtes programmées consommant moins de ressources du système de traitement de données de récupération d’informations que les ressources disponibles du système de traitement de données de récupération d’informations au moment localisé et qui a suffisamment de ressources disponibles pour supporter l’exécution de la requête spécifiée. Produit de programme informatique selon la revendication 13, dans lequel le procédé comprend en outre les étapes consistant à : recevoir une multiplicité de demandes pour programmer plusieurs requêtes différentes au moment ultérieur ; calculer un coût d’exécution estimé pour chacune des différentes requêtes ; filtrer les différentes requêtes en un sous-ensemble de requêtes ayant chacune un coût d’exécution estimé correspondant qui dépasse une valeur seuil ; déterminer pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble ; et, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Produit de programme informatique selon la revendication 13, dans lequel le procédé comprend en outre les étapes consistant à : recevoir une multiplicité de demandes pour programmer plusieurs requêtes différentes au moment ultérieur ; calculer un coût d’exécution estimé pour chacune des différentes requêtes ; filtrer les différentes requêtes en un sous-ensemble de requêtes ayant chacune un coût d’exécution estimé correspondant qui n’atteint pas une valeur seuil ; déterminer pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, une fréquence de changement des données correspondant à un champ référencé dans la requête correspondante parmi les requêtes du sous-ensemble ; et, pour chacune des requêtes correspondantes parmi les requêtes du sous-ensemble, à condition que la fréquence de changement de la requête correspondante parmi les requêtes du sous-ensemble soit inférieure à une valeur seuil, identifier un moment intermédiaire avant le moment ultérieur mais après le moment contemporain, et programmer l’exécution de la requête correspondante parmi les requêtes du sous-ensemble au moment intermédiaire. Produit de programme informatique selon la revendication 15, dans lequel le coût d’exécution estimé pour chacune des différentes requêtes est calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. Produit de programme informatique selon la revendication 16, dans lequel le coût d’exécution estimé pour chacune des différentes requêtes est calculé en faisant correspondre au moins une partie de chacune des différentes requêtes à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants.