Brevet FR3106223A1 — publié le 20210716

Un procédé de programmation optimale de requêtes comprend la réception, dans un système de traitement de données de récupération d’informations, d’une demande visant à accélérer l’exécution d’une requête spécifiée à un moment antérieur à un moment programmé. Un champ spécifique correspondant aux données d’une base de données est alors identifié dans la requête et une exigence de fraîcheur de données pour le champ spécifique est récupérée ainsi qu’une fréquence de changement des données correspondant au champ spécifique. Ensuite, si l’exécution de la requête spécifique au moment antérieur au moment programmé au lieu du moment programmé est déterminée comme ne violant pas l’exigence de fraîcheur de données sur la base de la fréquence de changement des données correspondant au champ spécifique, la requête spécifique est programmée pour être exécutée au moment antérieur au moment programmé. Mais sinon, l’heure programmée peut être maintenue pour l’exécution de la requête spécifique. Figure pour l’abrégé: Figure 1 PROGRAMMATION OPTIMALE DE REQUÊTES EN FONCTION DES EXIGENCES DE FRAÎCHEUR DE DONNÉES 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 programmé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 selon les exigences de fraîcheur de données. 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’information, d’une demande pour accélérer l’exécution de requête d’une requête spécifiée à un moment antérieur à un moment programmé. Un champ spécifique est alors identifié dans la requête spécifiée qui correspond aux données d’une base de données. Par la suite, une exigence de fraîcheur de données pour le champ spécifique est récupérée ainsi qu’une fréquence de changement des données correspondant au champ spécifique. Il est ensuite déterminé si l’exécution de la requête spécifique au moment antérieur au moment programmé violera l’exigence de fraîcheur de données en fonction de la fréquence de changement des données correspondant au champ spécifique. La requête spécifique est alors programmée pour être exécutée au moment antérieur au moment programmé seulement si l’exécution de la requête spécifique est déterminée comme ne violant pas l’exigence de fraîcheur de données. Dans le cas contraire, le moment programmé est maintenu pour l’exécution de la requête spécifique. Dans un aspect du mode de réalisation de l’invention, le moment antérieur est 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écifique. Dans un autre aspect du mode de réalisation, le procédé comprend en outre le maintien du moment programmé pour l’exécution de la requête spécifique même s’il est déterminé que la requête spécifique ne viole pas l’exigence de fraîcheur de données à condition qu’il soit déterminé que la requête spécifique a un coût d’exécution estimé qui est inférieur à une valeur seuil. Dans un autre aspect du mode de réalisation, le coût d’exécution estimé est calculé en faisant correspondre au moins une partie de chaque requête spécifique à une entrée dans une table de fragments de requêtes et de moment d’exécution historiques correspondants. 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 en fonction des exigences de fraîcheur de données. Le système comprend une plate-forme informatique hôte comportant un ou plusieurs ordinateurs dotés chacun de 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 une demande d’accélération d’exécution de requête d’une requête spécifiée à un moment antérieur à un moment programmé et pour identifier dans la requête spécifiée, un champ spécifique correspondant aux données d’une base de données. Les instructions de programme sont en outre capables de récupérer une exigence de fraîcheur de données pour le champ spécifique et une fréquence de changement des données correspondant au champ spécifique, et de déterminer si l’exécution de la requête spécifique à un moment antérieur au moment programmé au lieu du moment programmée viole l’exigence de fraîcheur de données en fonction de la fréquence de changement des données correspondant au champ spécifique. Enfin, les instructions de programme permettent de programmer l’exécution de la requête spécifique au moment antérieur au moment programmé à condition que l’exécution de la requête spécifique est déterminée comme ne violant pas l’exigence de fraîcheur de données en programmant la requête spécifique au moment antérieur au moment programmé. Sinon, les instructions de programme sont activées pour maintenir le moment programmé pour l’exécution de la requête spécifique. 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 selon les exigences de fraîcheur de données ; 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 selon les exigences de fraîcheur de données ; et, La figure 3 est un organigramme illustrant un procédé de programmation optimale de requêtes selon les exigences de fraîcheur de données. 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 en fonction des exigences de fraîcheur de données. Conformément à un mode de réalisation de l’invention, une demande peut être reçue dans le système de traitement de données de récupération d’informations pour accélérer l’exécution de requête d’une requête spécifiée à partir du moment programmé jusqu’à un moment antérieur au moment programmé. En réponse à la réception de la demande, un champ spécifique correspondant aux données d’une base de données peut être identifié dans la requête spécifiée. De même, une exigence de fraîcheur de données est récupérée pour le champ spécifique ainsi qu’une fréquence de changement des données correspondant au champ spécifique. Par la suite, il est possible de déterminer si l’exécution de la requête spécifique au moment antérieur au moment programmé au lieu du moment programmé viole l’exigence de fraîcheur de données en fonction de la fréquence de changement des données correspondant au champ spécifique. A condition que l’exécution de la requête spécifique soit déterminée comme ne violant pas l’exigence de fraîcheur de données en programmant la requête spécifique à un moment antérieur au moment programmé, la requête spécifique peut être programmée pour être exécutée à un moment antérieur au moment programmé. Mais, sinon, le moment programmé pour l’exécution de la requête spécifique peut être maintenu. 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 en fonction d’exigences de fraîcheur de données. Comme le montre la figure 1, une requête 110 est reçue demandant l’accélération de la programmation d’une requête 120 à un moment spécifié 130 plus tôt qu’un moment programmé existant pour la requête. Un champ 140 d’une base de données ou d’un modèle de données concerné par la requête 120 est identifié. Par la suite, une exigence de fraîcheur de données 160 pour le champ 140 est récupérée - en particulier, une indication préalablement enregistrée sur la date de mise à jour à laquelle les données pour le champ 140 doivent être au moment de l’exécution d’une requête accédant aux données du champ 140, qu’elles fassent directement partie d’une agrégation. De même, une volatilité observée 150 du champ 140 est récupérée, en particulier une indication de la fréquence à laquelle les données du champ 140 ont été mises à jour dans le passé. Par la suite, l’exigence de fraîcheur 160 est comparée à la volatilité observée 150 au moment spécifié 130 par rapport à un moment où la demande 110 avait été reçue afin de déterminer la fraîcheur attendue des données dans le champ 140 au moment spécifié 130. Dans la mesure où l’accélération de la programmation de la requête 120 au moment spécifié 130 entraînera une violation de la condition de fraîcheur 160, la requête 110 est rejetée et la requête 120 reste dans le programme 100 pour exécution au moment précédemment programmée 190. Mais sinon, la requête 120 est reprogrammée dans le programme 100 au moment spécifié 130. En option, un coût d’exécution 170 de la requête 120 est déterminé sur la base d’au moins une partie de la requête 120. Dans la mesure où le coût d’exécution est inférieur à une valeur seuil, aucune reprogrammation au moment spécifié 130 n’est autorisée. Le procédé décrit en relation avec la figure 1 peut être mis en œuvre dans un système de traitement de données de récupération d’informations. La figure 2 illustre de manière 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 une 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 les 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êtes 240 s’exécutant dans des dispositifs informatiques 230 respectivement différents, et pour programmer l’exécution de chacune des requêtes reçues dans un programme de requêtes 270, un moment spécifique (jour/date/heure ou toute combinaison de ceux-ci) étant attribuée à chacune des requêtes pour exécution. L’interface de requêtes 260 est en outre configurée pour fournir aux clients demandeurs parmi les clients de requêtes 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 pour accélérer l’exécution d’une requête spécifiée à un moment antérieur à un moment précédemment programmé. Les instructions de programme informatique sont en outre activées lors de l’exécution pour consulter un tableau 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 le tableau 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évu dépasse une valeur seuil, de manière à justifier une accélération de la programmation, pour identifier un champ concerné par la requête spécifiée et déterminer dans une table 280 de fraîcheur de données une volatilité connue des données pour le champ identifié et une fraîcheur requise de données pour le champ identifié au moment de l’exécution d’une requête concernant le champ. Enfin, les instructions de programme informatique sont activées pendant l’exécution pour accélérer la programmation de l’exécution de la requête jusqu’au moment prévu dans la table 270 de la requête, tant que la volatilité déterminée pour la requête spécifiée ne produit pas de données dont la valeur de fraîcheur est inférieure à l’exigence de fraîcheur, c’est-à-dire que les données auront probablement changé après le moment demandée et avant le moment programmé précédemment. Mais sinon, les instructions de programme informatique sont activées pour rejeter la demande de programmation accélérée dans le programme de requête 270. Pour illustrer encore plus le fonctionnement du module 300 de programmeur optimal de requêtes, la figure 3 est un organigramme illustrant un procédé de programmation optimale des requêtes pour un système de traitement de données de récupération d’information. A partir du bloc 310, une demande d’accélération de la programmation d’une requête à un moment antérieur à un moment précédemment programmé est reçue. Dans le bloc 320, une requête impliquée par la demande est identifiée ainsi que le moment spécifié pour la reprogrammation. Dans le bloc 330, un champ concerné par la requête est sélectionné et dans le bloc 340, une exigence de fraîcheur pour le champ est récupérée. Ensuite, dans le bloc 350, une volatilité observée du champ est également récupérée et dans le bloc 360, la fraîcheur de données dans le champ est prédite pour le moment spécifié en fonction de la volatilité observée. A cet égard, une table de fraîcheur de données peut mettre à jour de façon continue ou périodique une mesure de la fréquence de mise à jour des données pour différents champs de la base de données ou du modèle de données. Dans le bloc de décision 370, la fraîcheur prédite est comparée à l’exigence de fraîcheur afin de déterminer si la replanification de la requête au moment spécifié violera l’exigence de fraîcheur. En d’autres termes, s’il est déterminé que la mise à jour des données du champ est prévue dans la période comprise entre le moment spécifié et le moment précédemment programmé, rendant les données prématurées et non fraîches au moment spécifié, une violation aura eu lieu. Sinon, la requête est reprogrammée au moment spécifié avant le moment précédemment programmé. Mais sinon, dans le bloc 390, la requête est rejetée. 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, une demande pour accélérer l’exécution de requête d’une requête spécifiée à un moment antérieur à un moment programmé ; identifier dans la requête spécifiée, un champ spécifique correspondant à des données dans une base de données ; récupérer une exigence de fraîcheur de données pour le champ spécifique et une fréquence de changement de données correspondant au champ spécifique ; déterminer si l’exécution de la requête spécifique au moment antérieur au moment programmé au lieu du moment programmé viole l’exigence de fraicheur de données en fonction de la fréquence de changement des données correspondant au champ spécifique ; et, à condition que l’exécution de la requête spécifique soit déterminée comme ne violant pas l’exigence de fraîcheur de données en programmant la requête spécifique au moment antérieur au moment programmé, programmer l’exécution de la requête spécifique au moment antérieur au moment programmé, mais sinon maintenir le moment programmé pour l’exécution de la requête spécifique. Procédé selon la revendication 1, dans lequel le moment antérieur est 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écifique. Procédé selon la revendication 1, comprenant en outre le maintien du moment programmé pour l’exécution de la requête spécifique même s’il est déterminé que la requête spécifique ne viole pas l’exigence de fraîcheur de données à condition qu’il soit déterminé que la requête spécifique a un coût d’exécution estimé qui est inférieur à une valeur seuil. Procédé selon la revendication 3, dans lequel le coût d’exécution estimé est calculé en faisant correspondre au moins une partie de chacune des requêtes spécifiques à une entrée dans un tableau 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 informatique 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 exécution et renvoyant aux demandeurs différents ensembles de résultats en réponse aux requêtes ; et, un module de programmation de requêtes optimal 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, dans un système de traitement de données de récupération d’informations, une demande pour accélérer l’exécution de requête d’une requête spécifiée à un moment antérieur à un moment programmé ; identifier dans la requête spécifiée, un champ spécifique correspondant à des données dans une base de données ; récupérer une exigence de fraîcheur de données pour le champ spécifique et une fréquence de changement de données correspondant au champ spécifique ; déterminer si l’exécution de la requête spécifique au moment antérieur au moment programmé au lieu du moment programmé viole l’exigence de fraicheur de données en fonction de la fréquence de changement des données correspondant au champ spécifique ; et, à condition que l’exécution de la requête spécifique soit déterminée comme ne violant pas l’exigence de fraîcheur de données en programmant la requête spécifique au moment antérieur au moment programmé, programmer l’exécution de la requête spécifique au moment antérieur au moment programmé, mais sinon maintenir le moment programmé pour l’exécution de la requête spécifique. Système selon la revendication 5, dans lequel le moment antérieur est 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écifique. Système selon la revendication 5, dans lequel les instructions de programme sont en outre activées pour maintenir le moment programmé pour l’exécution de la requête spécifique même s’il est déterminé que la requête spécifique ne viole pas l’exigence de fraîcheur de données à condition qu’il soit déterminé que la requête spécifique a un coût d’exécution estimé qui est inférieur à une valeur seuil. Système selon la revendication 7, dans lequel le coût d’exécution estimé est calculé en faisant correspondre au moins une partie de chacune des requêtes spécifiques à une entrée dans un tableau de fragments de requêtes et de moments 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, une demande pour accélérer l’exécution de requête d’une requête spécifiée à un moment antérieur à un moment programmé ; identifier dans la requête spécifiée, un champ spécifique correspondant à des données dans une base de données ; récupérer une exigence de fraîcheur de données pour le champ spécifique et une fréquence de changement de données correspondant au champ spécifique ; déterminer si l’exécution de la requête spécifique au moment antérieur au moment programmé au lieu du moment programmé viole l’exigence de fraicheur de données en fonction de la fréquence de changement des données correspondant au champ spécifique ; et, à condition que l’exécution de la requête spécifique soit déterminée comme ne violant pas l’exigence de fraîcheur de données en programmant la requête spécifique au moment antérieur au moment programmé, programmer l’exécution de la requête spécifique au moment antérieur au moment programmé, mais sinon maintenir le moment programmé pour l’exécution de la requête spécifique. Produit de programme informatique selon la revendication 9, dans lequel le moment antérieur est 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écifique. Produit de programme informatique selon la revendication 9, dans lequel le procédé comprend en outre le maintien du moment programmé pour l’exécution de la requête spécifique même s’il est déterminé que la requête spécifique ne viole pas l’exigence de fraîcheur de données à condition qu’il soit déterminé que la requête spécifique a un coût d’exécution estimé qui est inférieur à une valeur seuil. Produit de programme informatique selon la revendication 11, dans lequel le coût d’exécution estimé est calculé en faisant correspondre au moins une partie de chacune des requêtes spécifiques à une entrée dans un tableau de fragments de requêtes et de moment d’exécution historiques correspondants.