(57)【要約】【課題】サービスの利用に用いられるリソースを適切に管理すること。【解決手段】本願に係る情報処理装置は、判定部と決定部とを備える。判定部は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を判定する。決定部は、判定部によって判定された習熟度に応じて、ユーザが所定のサービスを利用する際に用いるリソースを決定する。判定部は、習熟度として、ユーザが所定のサービスを利用する際に用いるリソースの使用に関する習熟度を判定する。【選択図】図１
2020009379.tif 000002
【特許請求の範囲】
【請求項１】
所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、前記所定のサービスを利用するユーザの前記所定のサービスの利用に関する習熟度を判定する判定部と、
前記判定部によって判定された習熟度に応じて、前記ユーザが前記所定のサービスを利用する際に用いるリソースを決定する決定部
を備えることを特徴とする情報処理装置。
【請求項２】
前記判定部は、
前記習熟度として、前記ユーザが前記所定のサービスを利用する際に用いるリソースの使用に関する習熟度を判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定部は、
前記リソース情報として、前記ユーザから受け付けた前記所定のサービスに関する一連の処理命令であるクエリを実行する際に用いられたリソースに関する情報に基づいて、前記習熟度を判定する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記判定部は、
前記リソース情報として、前記ユーザから受け付けた前記所定のサービスに関する一連の処理命令であるクエリの実行回数に基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜３のいずれか１つに記載の情報処理装置。
【請求項５】
前記判定部は、
前記リソース情報として、前記ユーザが前記所定のサービスを利用する際に用いた記憶領域の容量に基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜４のいずれか１つに記載の情報処理装置。
【請求項６】
前記判定部は、
前記リソース情報として、前記ユーザが前記所定のサービスを利用する際に用いた中央処理装置に関するリソースであるＣＰＵリソースに関する情報に基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜５のいずれか１つに記載の情報処理装置。
【請求項７】
前記判定部は、
前記リソース情報として、前記ユーザが前記所定のサービスを利用する際に用いた中央処理装置の計算時間であるＣＰＵ時間に基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜６のいずれか１つに記載の情報処理装置。
【請求項８】
前記判定部は、
前記リソース情報として、前記ユーザが前記所定のサービスを利用する際に用いたＣＰＵリソースの使用量がＣＰＵリソースの容量に対して占める割合であるＣＰＵ占有率に基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜７のいずれか１つに記載の情報処理装置。
【請求項９】
前記判定部は、
前記リソース情報として、前記ユーザが前記所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、前記複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かに基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜８のいずれか１つに記載の情報処理装置。
【請求項１０】
前記判定部は、
前記ユーザが前記所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、前記複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示す前記ＣＰＵリソースの使用量の分散に基づいて、前記ＣＰＵリソースの使用量が所定の中央処理装置に偏っているか否かを判定する
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、前記所定のサービスを利用するユーザの前記所定のサービスの利用に関する習熟度を示す指標値を算出する算出部
をさらに備え、
前記判定部は、
前記算出部によって算出された指標値に基づいて、前記習熟度を判定する
ことを特徴とする請求項１〜１０のいずれか１つに記載の情報処理装置。
【請求項１２】
前記決定部は、
前記判定部によって判定された習熟度が高いほど、前記ユーザが前記所定のサービスを利用する際に用いるリソースを優先して割り当てることを決定する
ことを特徴とする請求項１〜１１のいずれか１つに記載の情報処理装置。
【請求項１３】
前記決定部は、
前記リソースとして、前記ユーザが前記所定のサービスを利用する際に用いる中央処理装置に関するリソースであるＣＰＵリソースを優先して割り当てることを決定する
ことを特徴とする請求項１〜１２のいずれか１つに記載の情報処理装置。
【請求項１４】
前記決定部は、
前記リソースとして、前記ユーザから受け付けた前記所定のサービスに関する一連の処理命令であるクエリに中央処理装置の使用権を優先して割り当てることを決定する
ことを特徴とする請求項１〜１３のいずれか１つに記載の情報処理装置。
【請求項１５】
前記決定部は、
前記リソースとして、前記ユーザが前記所定のサービスを利用する際に使用可能な記憶領域の容量を優先して割り当てることを決定する
ことを特徴とする請求項１〜１４のいずれか１つに記載の情報処理装置。
【請求項１６】
前記決定部は、
前記リソースとして、前記ユーザが同時に実行可能な前記所定のサービスに関する一連の処理命令であるクエリの本数を優先して割り当てることを決定する
ことを特徴とする請求項１〜１５のいずれか１つに記載の情報処理装置。
【請求項１７】
前記決定部は、
前記リソースとして、前記ユーザが実行を開始した前記所定のサービスに関する一連の処理命令であるクエリが強制終了されるまでの時間を優先して割り当てることを決定する
ことを特徴とする請求項１〜１６のいずれか１つに記載の情報処理装置。
【請求項１８】
コンピュータが実行する情報処理方法であって、
所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、前記所定のサービスを利用するユーザの前記所定のサービスの利用に関する習熟度を判定する判定工程と、
前記判定工程によって判定された習熟度に応じて、前記ユーザが前記所定のサービスを利用する際に用いるリソースを決定する決定工程
を含むことを特徴とする情報処理方法。
【請求項１９】
所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、前記所定のサービスを利用するユーザの前記所定のサービスの利用に関する習熟度を判定する判定手順と、
前記判定手順によって判定された習熟度に応じて、前記ユーザが前記所定のサービスを利用する際に用いるリソースを決定する決定手順
をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来、ユーザのアカウントを管理する技術が知られている。例えば、アカウントに設定された権限ごとに、各権限の使用頻度に基づく重要度に応じた有効時間を算出し、有効時間を超えて使用されていない権限を個別に判別する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２１２２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、サービスの利用に用いられるリソースを適切に管理することができるとは限らない。具体的には、上記の従来技術では、有効時間を超えて使用されていない権限を個別に判別するにすぎず、サービスの利用に用いられるリソースを適切に管理することができるとは限らない。
【０００５】
本願は、上記に鑑みてなされたものであって、サービスの利用に用いられるリソースを適切に管理することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る情報処理装置は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、前記所定のサービスを利用するユーザの前記所定のサービスの利用に関する習熟度を判定する判定部と、前記判定部によって判定された習熟度に応じて、前記ユーザが前記所定のサービスを利用する際に用いるリソースを決定する決定部とを備えたことを特徴とする。
【発明の効果】
【０００７】
実施形態の一態様によれば、サービスの利用に用いられるリソースを適切に管理することができるといった効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理の一例を示す図である。
【図２】図２は、実施形態に係る情報処理装置の構成例を示す図である。
【図３】図３は、実施形態に係るクエリ情報記憶部の一例を示す図である。
【図４】図４は、実施形態に係るユーザ情報記憶部の一例を示す図である。
【図５】図５は、実施形態に係るリソース情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係る高負荷クエリの判定処理手順を示すフローチャートである。
【図７】図７は、実施形態に係る情報処理手順を示すフローチャートである。
【図８】図８は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１０】
〔１．情報処理の一例〕
まず、図１を用いて、実施形態に係る情報処理の一例について説明する。図１は、実施形態に係る情報処理の一例を示す図である。図１の例では、情報処理システム１は、ユーザ端末１０とデータベース管理システム（ＤＢＭＳ：Database  Management  System）に関するサービスを提供する情報処理装置１００とを有する。データベース管理システムに関するサービスとは、例えば、データを複数の表で管理するリレーショナルデータベース管理システム（ＲＤＢＭＳ：relational  database  management  system）に関するサービスである。
【００１１】
ユーザ端末１０と情報処理装置１００とは、ネットワークＮ（例えば、図２参照）等の所定の通信網を介して、有線または無線により通信可能に接続される。なお、図１に示す情報処理システム１には、任意の数のユーザ端末１０と任意の数の情報処理装置１００とが含まれてもよい。
【００１２】
ユーザ端末１０は、ユーザによって利用される情報処理装置である。ユーザ端末１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、デスクトップＰＣや、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。図１は、ユーザ端末１０がノート型ＰＣである場合を示す。なお、以下では、ユーザ端末１０をユーザと表記する場合がある。すなわち、以下では、ユーザをユーザ端末１０と読み替えることもできる。
【００１３】
また、以下では、ユーザＩＤ「Ｕ１」により識別されるユーザを「ユーザＵ１」とする場合がある。このように、以下では、「ユーザＵ＊（＊は任意の数値）」と記載した場合、そのユーザはユーザＩＤ「Ｕ＊」により識別されるユーザであることを示す。例えば、「ユーザＵ２」と記載した場合、そのユーザはユーザＩＤ「Ｕ２」により識別されるユーザである。
【００１４】
また、図１に示す例においては、ユーザ端末１０を利用するユーザに応じて、ユーザ端末１０をユーザ端末１０−１、１０−２として説明する。例えば、ユーザ端末１０−１は、ユーザＩＤ「Ｕ１」により識別されるユーザ（ユーザＵ１）により使用されるユーザ端末１０である。また、例えば、ユーザ端末１０−２は、ユーザＩＤ「Ｕ２」により識別される（ユーザＵ２）により使用されるユーザ端末１０である。また、以下では、ユーザ端末１０−１、１０−２について、特に区別なく説明する場合には、ユーザ端末１０と記載する。
【００１５】
ユーザ端末１０には、情報処理装置１００が提供するデータベース管理システムに対する操作を行うためのアプリケーションがインストールされている。ユーザ端末１０は、ユーザの操作に従って、データの抽出や挿入、更新、削除といったデータベース管理システムに対する一連の処理命令であるクエリを情報処理装置１００に送信する。例えば、ユーザ端末１０は、ＳＱＬ（Structured  Query  Language）によって記述されたクエリを情報処理装置１００に送信する。
【００１６】
情報処理装置１００は、所定のサービスの利用に用いられるリソースを管理するサーバ装置である。情報処理装置１００は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を判定する。そして、情報処理装置１００は、判定した習熟度に応じて、ユーザが所定のサービスを利用する際に用いるリソースを決定する。図１では、所定のサービスの一例として、データベース管理システムに関するサービスについて説明する。
【００１７】
また、情報処理装置１００は、データベース管理システムに関するサービスを提供するサーバ装置である。具体的には、情報処理装置１００は、時系列に整理された大量の統合業務データを管理するシステムであるデータウェアハウスに関するサービスを提供する。
【００１８】
情報処理装置１００は、アプリケーションを経由してユーザ端末１０からクエリを受け付ける。情報処理装置１００は、ユーザ端末１０からクエリを受け付けると、クエリを実行する。具体的には、情報処理装置１００は、ユーザ端末１０からクエリを受け付けると、複数の中央処理装置によってクエリを並行処理する。例えば、情報処理装置１００は、複数のＳＭＰ（Symmetric  Multiprocessing）ノードを機器間通信バスで接続し、ＳＭＰノード間でディスクを共有しないマルチプロセッサの方式であるＭＭＰ（Massively  Parallel  Processing）によってクエリを並行処理する。
【００１９】
以下、図１を用いて、情報処理の一例を説明する。図１に示す例では、対照的な２人のユーザ（ユーザＵ１とユーザＵ２）を例にとって説明する。はじめに、ユーザＵ１について説明する。ユーザ端末１０−１は、データベース管理システムに対する一連の処理命令であって、ＳＱＬによって記述されたクエリ「ＳＱＬ文＃１１」を情報処理装置１００に送信する（ステップＳ１１）。情報処理装置１００は、アプリケーションを経由してユーザ端末１０−１からクエリ「ＳＱＬ文＃１１」を受け付ける。
【００２０】
続いて、情報処理装置１００は、ユーザ端末１０−１からクエリ「ＳＱＬ文＃１１」を受け付けると、受け付けたクエリ「ＳＱＬ文＃１１」を実行する（ステップＳ２１）。具体的には、情報処理装置１００は、クエリ「ＳＱＬ文＃１１」を複数の中央処理装置によって並行処理する。情報処理装置１００は、クエリを実行するとともに、クエリの送信元であるユーザＵ１のユーザＩＤとクエリを実行した日時と実行したクエリ「ＳＱＬ文＃１１」とを対応付けて、図３に示すクエリ情報記憶部１２２に記憶する。
【００２１】
また、情報処理装置１００は、クエリ「ＳＱＬ文＃１１」を実行すると、ユーザＵ１から受け付けたクエリ「ＳＱＬ文＃１１」を実行する際に用いられたリソースに関するリソース情報を取得する。具体的には、情報処理装置１００は、リソース情報として、クエリを実行する際に用いられた中央処理装置の計算時間であるＣＰＵ時間を取得する。また、情報処理装置１００は、リソース情報として、クエリを実行する際に用いられた記憶領域の容量を取得する。また、情報処理装置１００は、リソース情報として、クエリを実行する際に用いられたＣＰＵリソースの使用量がＣＰＵリソースの容量に対して占める割合であるＣＰＵ占有率を取得する。また、情報処理装置１００は、リソース情報として、クエリを実行する際に用いられた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散を取得する。情報処理装置１００は、リソース情報を取得すると、取得したリソース情報を実行したクエリ「ＳＱＬ文＃１１」と対応付けて、図３に示すクエリ情報記憶部１２２に記憶する。
【００２２】
情報処理装置１００は、クエリ「ＳＱＬ文＃１１」と同様に、所定期間内にユーザＵ１から複数のクエリ「ＳＱＬ文＃１２」、クエリ「ＳＱＬ文＃１３」、・・・、クエリ「ＳＱＬ文＃１Ｎ」（Ｎは自然数）を受け付ける。また、情報処理装置１００は、クエリ「ＳＱＬ文＃１１」と同様に、所定期間内にユーザＵ１から受け付けたクエリ「ＳＱＬ文＃１２」、クエリ「ＳＱＬ文＃１３」、・・・、クエリ「ＳＱＬ文＃１Ｎ」を実行する際に用いられたリソースに関するリソース情報を取得する。情報処理装置１００は、リソース情報を取得すると、取得したリソース情報を実行したクエリと対応付けて、図３に示すクエリ情報記憶部１２２に記憶する。
【００２３】
情報処理装置１００は、所定期間内に取得したリソース情報に基づいて、ユーザＵ１のデータベース管理システムの利用に関する習熟度を判定する（ステップＳ３１）。データベース管理システムの利用に関する習熟度とは、具体的には、ユーザがデータベース管理システムを利用する際に用いるリソースの使用に関する習熟度を意味する。より具体的には、リソースの使用に関する習熟度が低いユーザとは、リソースに高い負荷をかけるユーザである。情報処理装置１００は、リソース情報が所定の条件を満たす場合に、ユーザがクエリを実行する際に用いるリソースの使用に関する習熟度を示すスコア（以降、「スコア」と称する。）の一つであるクエリ実行スコアを減点する。なお、情報処理装置１００は、クエリ実行スコアとトレーニング受講スコアと運営協力スコアの３つのスコアの合計点をスコアとして算出する。そして、情報処理装置１００は、算出したスコアに基づいて、ユーザの習熟度を判定する。トレーニング受講スコアは、ユーザがデータベース管理システムの利用に関する各種のトレーニングを受講したユーザに対して加算されるスコアである。運営協力スコアは、データベース管理システムの運営に協力したユーザに対して加算されるスコアである。ここで、アカウントが付与されてから所定期間（例えば、１か月）を経過したユーザであって、一般的なユーザのスコアの平均を０点とする。情報処理装置１００は、０点からクエリ実行スコアを減点、又は、トレーニング受講スコアと運営協力スコアを加算することにより、スコアを算出する。なお、一般的なユーザとは、平均的なユーザを指す。また、一般的なユーザ（すなわち、スコアが０点であるユーザ）の習熟度をレベル２とする。
【００２４】
例えば、情報処理装置１００は、所定の条件として、所定期間内にＣＰＵ時間が所定の時間（例えば１００Ｋ秒）以上のクエリである高負荷クエリを所定の回数（例えば１０回）以上実行した場合に、クエリ実行スコアを減点する。図１に示す例では、情報処理装置１００は、一か月間にユーザＵ１から受け付けた高負荷クエリを１０回実行する。情報処理装置１００は、ユーザＵ１が所定の条件を満たすので、例えば、ユーザＵ１のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。また、情報処理装置１００は、ユーザＵ１のトレーニング受講スコアを０点と算出する。また、情報処理装置１００は、ユーザＵ１の運営協力スコアを０点と算出する。したがって、情報処理装置１００は、３つのスコアの合計として、ユーザＵ１のスコアを−１０点と算出する。図１に示す例では、情報処理装置１００は、ユーザＵ１のスコアが−１０点であり、習熟度が平均的なユーザのスコアである０点よりも低いので、ユーザＵ１の習熟度をレベル２よりも低いレベル１であると判定する。
【００２５】
続いて、情報処理装置１００は、判定した習熟度に応じて、ユーザが所定のサービスを利用する際に用いるリソースを決定する。具体的には、決定部１３５は、判定部１３４によって判定された習熟度が高いほど、ユーザが所定のサービスを利用する際に用いるリソースを優先して割り当てることを決定する。図１に示す例では、情報処理装置１００は、ユーザＵ１の習熟度が平均的なユーザより低いレベル１であるので、ユーザＵ１がデータベース管理システムを利用する際に用いるリソースをレベル２のユーザより制限することを決定する（ステップＳ４１）。例えば、情報処理装置１００は、ユーザＵ１から受け付けたクエリに中央処理装置の使用権を割り当てる優先度を低くすることを決定する。
【００２６】
次に、ユーザＵ２について説明する。ユーザ端末１０−２は、データベース管理システムに対する一連の処理命令であってＳＱＬによって記述されたクエリ「ＳＱＬ文＃２１」を情報処理装置１００に送信する（ステップＳ１２）。情報処理装置１００は、アプリケーションを経由してユーザ端末１０−２からクエリ「ＳＱＬ文＃２１」を受け付ける。
【００２７】
続いて、情報処理装置１００は、ユーザ端末１０−２からクエリ「ＳＱＬ文＃２１」を受け付けると、受け付けたクエリ「ＳＱＬ文＃２１」を実行する（ステップＳ２２）。具体的には、情報処理装置１００は、クエリ「ＳＱＬ文＃２１」を複数の中央処理装置によって並行処理する。情報処理装置１００は、クエリを実行するとともに、クエリの送信元であるユーザＵ２のユーザＩＤとクエリを実行した日時と実行したクエリ「ＳＱＬ文＃２１」とを対応付けて、図３に示すクエリ情報記憶部１２２に記憶する。
【００２８】
また、情報処理装置１００は、クエリ「ＳＱＬ文＃２１」を実行すると、ユーザＵ２から受け付けたクエリ「ＳＱＬ文＃２１」を実行する際に用いられたリソースに関するリソース情報を取得する。具体的には、情報処理装置１００は、リソース情報として、ＣＰＵ時間を取得する。また、情報処理装置１００は、リソース情報として、記憶領域の容量を取得する。また、情報処理装置１００は、リソース情報として、ＣＰＵ占有率を取得する。また、情報処理装置１００は、リソース情報として、ＣＰＵリソースの使用量の分散を取得する。情報処理装置１００は、リソース情報を取得すると、取得したリソース情報を実行したクエリ「ＳＱＬ文＃２１」と対応付けて、図３に示すクエリ情報記憶部１２２に記憶する。
【００２９】
情報処理装置１００は、クエリ「ＳＱＬ文＃２１」と同様に、所定期間内にユーザＵ２から複数のクエリ「ＳＱＬ文＃２２」、クエリ「ＳＱＬ文＃２３」、・・・、クエリ「ＳＱＬ文＃２Ｍ」（Ｍは自然数）を受け付ける。また、情報処理装置１００は、クエリ「ＳＱＬ文＃２１」と同様に、所定期間内にユーザＵ２から受け付けたクエリ「ＳＱＬ文＃２２」、クエリ「ＳＱＬ文＃２３」、・・・、クエリ「ＳＱＬ文＃２Ｍ」を実行する際に用いられたリソースに関するリソース情報を取得する。情報処理装置１００は、リソース情報を取得すると、取得したリソース情報を実行したクエリと対応付けて、図３に示すクエリ情報記憶部１２２に記憶する。
【００３０】
情報処理装置１００は、所定期間内に取得したリソース情報に基づいて、ユーザＵ２のデータベース管理システムの利用に関する習熟度を判定する（ステップＳ３２）。図１に示す例では、情報処理装置１００は、一か月間にユーザＵ２から受け付けた高負荷クエリを１回実行する。例えば、情報処理装置１００は、一か月間にユーザＵ２から受け付けた複数のクエリのうち、高負荷クエリであるクエリ「ＳＱＬ文＃２１」と高負荷クエリでない他のクエリを実行する。情報処理装置１００は、ユーザＵ２が所定の条件を満たさないので、ユーザＵ２のクエリ実行スコアを減点しない。また、情報処理装置１００は、ユーザＵ２は、ＳＱＬの記述方法に関する初心者向けトレーニングの受講歴があるため、ユーザＵ２のトレーニング受講スコアとして所定の点数（例えば１０点）を加算する。また、情報処理装置１００は、ユーザＵ２は、データベース管理システムを管理する管理者に対して、例えば、高負荷クエリのＳＱＬ文を解析するために協力した実績があるため、運営協力スコアとして所定の点数（例えば１０点）を加算する。したがって、情報処理装置１００は、３つのスコアの合計として、ユーザＵ２のスコアを１０点と算出する。続いて、情報処理装置１００は、ユーザＵ２のスコアが１０点であり、習熟度が平均的なユーザのスコアである０点よりも高いので、ユーザＵ２の習熟度をレベル２よりも高いレベル３であると判定する。
【００３１】
続いて、情報処理装置１００は、ユーザＵ２の習熟度が平均的なユーザより高いレベル３であるので、ユーザＵ２がデータベース管理システムを利用する際に用いるリソースを平均的なユーザより優先することを決定する（ステップＳ４２）。例えば、情報処理装置１００は、ユーザＵ２から受け付けたクエリに中央処理装置の使用権を割り当てる優先度を高くすることを決定する。
【００３２】
なお、情報処理装置１００は、所定期間内に高負荷クエリを所定の回数（例えば１０回）以上実行したことの他にも、リソース情報が所定の条件を満たす場合にクエリ実行スコアを減点する。具体的には、情報処理装置１００は、所定の条件を満たす場合として、ユーザから受け付けたクエリを実行する際に用いられたＣＰＵリソースの使用量がＣＰＵリソースの全容量に対して所定の割合（例えば５％）以上占有した場合に、ユーザのクエリ実行スコアを減点する。また、情報処理装置１００は、所定の条件を満たす場合として、ユーザから受け付けたクエリを実行するために要した記憶領域の容量が、ユーザに割り当てられている記憶容量を超えた回数が所定の回数（例えば１０回）以上である場合に、ユーザのクエリ実行スコアを減点する。また、情報処理装置１００は、所定の条件を満たす場合として、ユーザから受け付けたクエリの計算時間が所定の時間（例えば、２時間）を超えたため、クエリを強制的に終了した回数が所定の回数（例えば３回）以上である場合に、ユーザのクエリ実行スコアを減点する。また、情報処理装置１００は、所定の条件を満たす場合として、ユーザＵ１から受け付けたクエリを実行するために要したＣＰＵ時間が所定の時間を大幅に上回った場合（例えば５００Ｋ秒以上）に、ユーザのクエリ実行スコアを減点する。
【００３３】
また、情報処理装置１００は、所定の条件を満たす場合として、ユーザＵ１から受け付けたクエリを実行する際に用いられた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散が所定の閾値を下回る場合に、ユーザのクエリ実行スコアを減点してもよい。
【００３４】
ここで、ＣＰＵリソースの使用量の分散について詳しく説明する。ＣＰＵリソースの使用量の分散が所定の閾値を上回ることは、クエリを実行する際に、クエリに含まれる処理が、複数の中央処理装置によってバランスよく並行処理されることを意味する。一方、ＣＰＵリソースの使用量の分散が所定の閾値以下であることは、クエリを実行する際に、クエリに含まれる処理が、複数の中央処理装置のうちの特定の中央処理装置に偏って処理されることを意味する。例えば、１００個の処理を含むクエリを１０台の中央処理装置によって並行処理する場合を考える。この時、ユーザが記述するクエリの内容によっては、クエリに含まれる１００個の処理が、１０台の中央処理装置によってバランスよく並行処理される。例えば、１０台の中央処理装置各々によって１０個の処理が同時に並行処理される。一方、ユーザが記述するクエリの内容によっては、クエリに含まれる１００個の処理が、１０台の中央処理装置のうち特定の中央処理装置に偏って処理される。例えば、１０台の中央処理装置のうち特定の１台の中央処理装置によって１００個の処理が処理される。
【００３５】
例えば、あるクエリに含まれる１００個の処理が、１０台の中央処理装置のうち特定の１台の中央処理装置に偏って処理されるとすると、残り９台の中央処理装置は、特定の１台の中央処理装置が１００個の処理を終えるまで、アイドル状態（利用可能ではあるが何の処理も行われていない状態）となる。すなわち、１００個の処理が特定の中央処理装置に偏って処理されると、１００個の処理が複数の中央処理装置によってバランスよく並行処理されるのと比べて、中央処理装置による処理の効率が悪いといえる。言い換えると、クエリを実行する際にＣＰＵリソースの使用量の分散が小さいほど、ＣＰＵリソースが無駄使いされるといえる。
【００３６】
上述したように、情報処理装置１００は、ユーザの所定のサービスの利用に関する習熟度を判定する。そして、情報処理装置１００は、判定した習熟度に応じて、ユーザが所定のサービスを利用する際に用いるリソースを決定する。これにより、情報処理装置１００は、サービスの利用に関するユーザの習熟度に応じて、リソースを適切に管理することができる。また、情報処理装置１００は、サービスの利用に関するユーザの習熟度に応じて、ユーザがサービスを利用する際のメリットを享受することを可能にする。したがって、情報処理装置１００は、サービスの利用に関するユーザの習熟度を向上させることができる。また、情報処理装置１００は、サービスの利用に関するユーザの習熟度を向上させることにより、ユーザが効率的にサービスを利用することを可能にする。また、情報処理装置１００は、個々のユーザが効率的にサービスを利用することにより、全体としてユーザが利用可能なリソースを増やすことができる。したがって、情報処理装置１００は、サービスの利用に用いられるリソースを適切に管理することができる。
【００３７】
なお、情報処理装置１００は、所定期間内にリソース情報が所定の条件のいずれかを満たす場合にクエリ実行スコアを減点してもよいし、所定期間内にリソース情報が複数の所定の条件を満たす場合にクエリ実行スコアを減点してもよい。また、情報処理装置１００は、クエリ実行スコアだけをスコアとして用いてもよい。また、情報処理装置１００は、所定期間の経過を待つことなく、リソース情報が所定の条件を満たした時点で、クエリ実行スコアを減点してもよい。また、情報処理装置１００は、所定期間の経過を待つことなく、クエリ実行スコアが減点された時点で、ユーザの習熟度をレベル１であると判定して、ユーザがデータベース管理システムを利用する際に用いるリソースをレベル２のユーザより制限することを決定してもよい。
【００３８】
また、情報処理装置１００は、バッチ処理に割り当てられるリソースの割合に応じて、所定の条件に係る閾値を変更してもよい。一般的に、日中と夜間とでは、ユーザによって使用されるリソースの使用量とバッチ処理に割り当てられるリソースの使用量との割合は大きく異なる。例えば、夜間はバッチ処理に割り当てられるリソースの割合がかなり高くなる。また、バッチ処理に割り当てられるリソースの割合が高くなると、相対的にユーザに割り当て可能なリソースの使用量は少なくなる。例えば、夜間において、ユーザによって使用されるリソースの使用量とバッチ処理に割り当てられるリソースの使用量の比率が、２対８である場合や１対９である場合には、所定の条件に係る閾値を日中よりも低くする必要がある。そこで、情報処理装置１００は、バッチ処理割り当てられるリソースの割合が高くなる夜間の時間帯は、所定の条件に係る閾値を日中よりも低くする。例えば、情報処理装置１００は、日中の時間帯はＣＰＵ時間が１００Ｋ秒以上のクエリである高負荷クエリを１０回以上実行するという条件を、夜間の時間帯はＣＰＵ時間が８０Ｋ秒以上のクエリを１０回以上実行するという条件に変更する。また、情報処理装置１００は、日中の時間帯はＣＰＵ占有率が５％以上という条件を、夜間の時間帯はＣＰＵ占有率が３％以上という条件に変更する。また、情報処理装置１００は、日中の時間帯はユーザに割り当てられている記憶容量である６ＫＢを超えた回数が１０回以上であるという条件を、夜間の時間帯は記憶容量である４ＫＢを超えた回数が１０回以上であるという条件に変更する。また、情報処理装置１００は、日中の時間帯はＣＰＵ時間が５００Ｋ秒以上であるクエリを１回以上実行したという条件を、夜間の時間帯はＣＰＵ時間が３００Ｋ秒以上であるクエリを１回以上実行したという条件に変更する。なお、情報処理装置１００は、ＣＰＵ時間や記憶容量といった閾値を日中の時間帯よりも夜間の時間帯は低くする代わりに、条件にあてはまる回数を日中の時間帯よりも夜間の時間帯は低くするようにしてもよい。
【００３９】
〔２．情報処理装置の構成〕
次に、図２を用いて、実施形態に係る情報処理装置１００の構成について説明する。図２は、実施形態に係る情報処理装置１００の構成例を示す図である。図２に示すように、情報処理装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、情報処理装置１００は、情報処理装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００４０】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワークと有線または無線で接続され、例えば、ユーザ端末１０との間で情報の送受信を行う。
【００４１】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部１２０は、図２に示すように、データベース記憶部１２１と、クエリ情報記憶部１２２と、ユーザ情報記憶部１２３と、リソース情報記憶部１２４とを有する。
【００４２】
（データベース記憶部１２１）
データベース記憶部１２１は、データベースに関する各種の情報を記憶する。具体的には、データベース記憶部１２１は、複数の業務システムから収集したデータを統合して格納する。例えば、データベース記憶部１２１は、電子商取引システムから収集した顧客の取引履歴に関するデータ、位置情報システムから収集したユーザの位置履歴に関するデータ、検索システムから収集したユーザの検索履歴に関するデータ等を統合して格納する。
【００４３】
（クエリ情報記憶部１２２）
クエリ情報記憶部１２２は、ユーザから受け付けたクエリに関する各種の情報を記憶する。図３に、実施形態に係るクエリ情報記憶部の一例を示す。図３に示す例では、クエリ情報記憶部１２２は、「日時」、「ユーザＩＤ」、「ＳＱＬ文」、「ＣＰＵ時間（秒）」、「記憶領域（ＴＢ）」、「ＣＰＵ占有率（％）」、「ＣＰＵ使用量の分散」といった項目を有する。
【００４４】
「日時」は、ユーザからクエリを受け付けた日時に関する情報を示す。図３のユーザＵ１の１レコード目に示す例では、日時「２０１８／４／１  １０：００」は、２０１８年４月１日の１０：００にユーザＵ１からクエリを受け付けたことを示す。
【００４５】
「ユーザＩＤ」は、クエリを送信したユーザを識別するための識別情報を示す。図３のユーザＵ１の１レコード目に示す例では、クエリを送信したユーザがユーザＩＤ「Ｕ１」で識別されるユーザ（ユーザＵ１）であることを示す。
【００４６】
「ＳＱＬ文」は、ＳＱＬによって記述されたクエリであって、ユーザから受け付けたクエリを示す。図３のユーザＵ１の１レコード目に示す例では、ＳＱＬ文「ＳＱＬ文＃１１」は、ユーザＵ１から受け付けたクエリを示す。
【００４７】
「ＣＰＵ時間（秒）」は、クエリを実行する際に用いられた中央処理装置の計算時間を示す。図３のユーザＵ１の１レコード目に示す例では、ＣＰＵ時間（秒）「１００Ｋ」は、ユーザＵ１から受け付けたクエリ「ＳＱＬ文＃１１」を実行する際に用いられた中央処理装置の計算時間が１００Ｋ（秒）であることを示す。また、図３のユーザＵ５の１レコード目〜３レコード目に示す例では、ＣＰＵ時間「強制終了」は、ユーザＵ５がデータベース管理システムを利用する際に実行を開始したクエリが所定の時間（例えば、２時間）を超えたため、強制終了されたことを示す。
【００４８】
「記憶領域（ＴＢ）」は、クエリを実行する際に用いられた記憶領域の容量を示す。例えば、「記憶領域（ＴＢ）」は、クエリを実行する際にスプーリングに用いられた記憶領域の容量を示す。図３のユーザＵ４の１レコード目に示す例では、記憶領域（ＴＢ）「６」は、ユーザＵ４から受け付けたクエリ「ＳＱＬ文＃４１」を実行する際に用いられた記憶領域の容量が６（ＴＢ）であることを示す。
【００４９】
「ＣＰＵ占有率（％）」は、クエリを実行する際に用いられたＣＰＵリソースの使用量がＣＰＵリソースの容量に対して占める割合であるＣＰＵ占有率を示す。図３のユーザＵ３の１レコード目に示す例では、ＣＰＵ占有率（％）「５」は、ユーザＵ３から同時に受け付けた１０個のクエリ「ＳＱＬ文＃３１」〜クエリ「ＳＱＬ文＃３１０」を実行する際のＣＰＵ占有率が５（％）であることを示す。
【００５０】
「ＣＰＵ使用量の分散」は、クエリを並行処理する複数の中央処理装置のうち、クエリを実行する際に用いられたＣＰＵリソースの使用量が所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散を示す。ここで、ＣＰＵリソースの使用量の分散が大きいことは、クエリを実行する際に、クエリに含まれる処理が複数の中央処理装置によってバランスよく並行処理されることを意味する。一方、ＣＰＵリソースの使用量の分散が小さいことは、クエリを実行する際に、クエリに含まれる処理が複数の中央処理装置のうちの特定の中央処理装置に偏って処理されることを意味する。
【００５１】
図３のユーザＵ６の１レコード目に示す例では、ＣＰＵ使用量の分散「Ｑ」は、ユーザＵ１から受け付けたクエリ「ＳＱＬ文＃６１」を実行する際に用いられたＣＰＵリソースの使用量の分散がＱであることを示す。
【００５２】
（ユーザ情報記憶部１２３）
ユーザ情報記憶部１２３は、データベース管理システムを利用するユーザに関する各種の情報を記憶する。図４に、実施形態に係るユーザ情報記憶部の一例を示す。図４に示す例では、ユーザ情報記憶部１２３は、「ユーザＩＤ」、「クエリ実行スコア」、「トレーニング受講スコア」、「運営協力スコア」、「アカウント付与歴（月）」、「習熟度（レベル）」といった項目を有する。
【００５３】
「ユーザＩＤ」は、ユーザを識別するための識別情報を示す。図４の１レコード目に示す例では、ユーザがユーザＩＤ「Ｕ１」で識別されるユーザ（ユーザＵ１）であることを示す。
【００５４】
「クエリ実行スコア」は、ユーザがクエリを実行する際に用いるリソースの使用に関する習熟度を示すスコアである。図４の１レコード目に示す例では、クエリ実行スコア「−１０」は、ユーザＵ１のクエリ実行スコアが−１０であることを示す。
【００５５】
「トレーニング受講スコア」は、データベース管理システムの利用に関する各種のトレーニングを受講した場合に加点されるスコアである。例えば、トレーニング受講スコアは、ユーザがＳＱＬの記述方法に関する初心者向けトレーニングや定期トレーニングを受講した場合に加点される。図４の１レコード目に示す例では、トレーニング受講スコア「０」は、ユーザＵ１にトレーニングの受講実績がないことを示す。
【００５６】
「運営協力スコア」は、データベース管理システムの運営に協力した場合に加点されるスコアである。例えば、運営協力スコアは、ユーザがデータベース管理システムのデータ整備に協力した場合や、ユーザが高負荷なクエリのＳＱＬ文の解析に協力した場合に加点される。図４の１レコード目に示す例では、運営協力スコア「０」は、ユーザＵ１がデータベース管理システムの運営に協力した実績がないことを示す。
【００５７】
「アカウント付与歴（月）」は、ユーザにデータベース管理システムのアカウントが付与されてから現在までの期間の長さを示す。アカウント付与歴が所定期間を下回るユーザは新規ユーザであるとみなされる。例えば、アカウント付与歴が３か月を下回るユーザは図４の１レコード目に示す例では、アカウント付与歴（月）「２４」は、ユーザＵ１にデータベース管理システムのアカウントが付与されてから現在までの期間が２４か月であることを示す。また、図４の５レコード目に示す例では、アカウント付与歴（月）「１」は、ユーザＵ５にデータベース管理システムのアカウントが付与されてから現在までの期間が１か月であることを示す。ユーザＵ５のアカウント付与歴は、所定期間である３か月を下回るため、ユーザＵ５は新規ユーザであるとみなされる。
【００５８】
「習熟度（レベル）」は、ユーザのデータベース管理システムの利用に関する習熟度を示す。図４の１レコード目に示す例では、習熟度（レベル）「１」は、ユーザＵ１のデータベース管理システムの利用に関する習熟度がレベル１であることを示す。
【００５９】
（リソース情報記憶部１２４）
リソース情報記憶部１２４は、ユーザがデータベース管理システムを利用する際に用いるリソースを決定する基準に関する各種の情報を記憶する。図５に、実施形態に係るリソース情報記憶部の一例を示す。図５に示す例では、リソース情報記憶部１２４は、「習熟度（レベル）」、「記憶領域の上限（ＴＢ）」、「ＣＰＵを使用する優先度」、「クエリ多重度（日中／夜間）」、「アボート時間（時間）」、「１００％テーブル参照」といった項目を有する。
【００６０】
「習熟度（レベル）」は、ユーザのデータベース管理システムの利用に関する習熟度を示す。具体的には、「習熟度（レベル）」は、データベース管理システムを利用する際に用いるリソースの使用に関する習熟度を示す。より具体的には、データベース管理システムの利用に関する習熟度とは、クエリを実行する際に用いるリソースの使用に関する習熟度を意味する。図５に示す例では、「習熟度（レベル）」は、レベル０、レベル１、レベル２、レベル３の４段階ある。図５に示す例では、習熟度「３」（レベル３）は、一般的なユーザよりも習熟度が高いユーザであることを示す。習熟度「２」（レベル２）は、一般的なユーザと習熟度が同程度のユーザであることを示す。習熟度「１」（レベル１）は、一般的なユーザよりも習熟度が低いユーザであることを示す。習熟度「０」（レベル０）は、アカウント付与歴が所定期間を下回るユーザである新規ユーザであることを示す。新規ユーザの習熟度は一律にレベル０とみなす。
【００６１】
「記憶領域の上限（ＴＢ）」は、ユーザがデータベース管理システムを利用する際に使用可能な記憶領域の上限を示す。「記憶領域の上限（ＴＢ）」は、ユーザのレベルに応じてユーザ毎に割り当てられる上限が決まっている。具体的には、「記憶領域の上限（ＴＢ）」は、ユーザがクエリを一回実行する際に使用可能な記憶領域の上限を示す。図５に示す例では、習熟度がレベル３またはレベル２であるユーザがクエリを一回実行する際に使用可能な記憶領域の上限は「６」（ＴＢ）であることを示す。また、習熟度がレベル１またはレベル０であるユーザがクエリを一回実行する際に使用可能な記憶領域の上限は「４」（ＴＢ）であることを示す。
【００６２】
「ＣＰＵを使用する優先度」は、ユーザがデータベース管理システムを利用する際に中央処理装置を使用する順番の優先度を示す。「ＣＰＵを使用する優先度」は、言い換えると、ユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度である。すなわち、「ＣＰＵを使用する優先度」は、ユーザから受け付けたクエリが実行される順番の優先度である。図５に示す例では、ＣＰＵを使用する優先度「高」は、ユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度が高いことを示す。ＣＰＵを使用する優先度「中」は、ユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度が普通であることを示す。ＣＰＵを使用する優先度「（低※）」は、ユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度が低いことを示す。また、「※重い処理命令」とは、リソースを多く使用するクエリであることを示す。すなわち、リソースを多く使用するクエリは、中央処理装置の使用権が割り当てられる優先度が低いことを示す。
【００６３】
図５の１レコード目に示す例では、習熟度がレベル３であるユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度が高いことを示す。図５の２レコード目に示す例では、習熟度がレベル２であるユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度が普通であることを示す。図５の３レコード目と４レコード目に示す例では、原則として、習熟度がレベル１またはレベル０であるユーザから受け付けたクエリに中央処理装置の使用権が割り当てられる優先度が普通であることを示す。例外として、習熟度がレベル１またはレベル０であるユーザから受け付けたクエリがリソースを多く使用するクエリである場合は、そのクエリに中央処理装置の使用権が割り当てられる優先度が低いことを示す。
【００６４】
ここで、優先度について詳しく説明する。まず、クエリの状態について説明する。クエリに中央処理装置の使用権が与えられて、クエリが実行中の状態にあることを実行状態（ＲＵＮ）と称する。また、中央処理装置の使用権が回ってくるのを待っている状態で、いつでもクエリが実行可能な状態にあることを実行可能状態（ＲＥＡＤＹ）と称する。実行可能状態にあるクエリは、中央処理装置の使用権の待ち行列に並んでいると考えられる。  例えば、クエリＡが実行状態であって、実行可能状態であるクエリＢとクエリＣが中央処理装置の使用権の待ち行列に並んでいるとする。クエリＡの優先度は「中」であり、クエリＢの優先度は「低」であり、クエリＣの優先度は「中」であるとする。この時、優先度が「高」のクエリＤが中央処理装置の使用権の待ち行列に追加されると、中央処理装置の使用権が実行状態であるクエリＡから優先度が高いクエリＤに切り替えられる。すなわち、優先度が高いクエリほど、中央処理装置に優先的に実行される。
【００６５】
「クエリ多重度（日中／夜間）」は、ユーザがデータベース管理システムを利用する際に同時に実行可能なクエリの本数を示す。図５に示す例では、クエリ多重度（日中／夜間）「３／２」は、ユーザが日中（例えば、午前８：００〜午後２０：００）に同時に実行可能なクエリの本数が３本であり、ユーザが夜間（例えば、日中以外の時間帯）に同時に実行可能なクエリの本数が２本であることを示す。図５の１レコード目と２レコード目に示す例では、習熟度がレベル３またはレベル２のユーザが日中に同時に実行可能なクエリの本数が３本であり、ユーザが夜間に同時に実行可能なクエリの本数が２本であることを示す。図５の３レコード目と４レコード目に示す例では、習熟度がレベル１またはレベル０であるユーザが日中に同時に実行可能なクエリの本数が２本であり、ユーザが夜間に同時に実行可能なクエリの本数が２本であることを示す。
【００６６】
「アボート時間（時間）」は、ユーザがデータベース管理システムを利用する際に実行を開始したクエリが強制終了されるまでの最長時間を示す。図５に示す例では、アボート時間（時間）「３」は、ユーザがデータベース管理システムを利用する際に実行を開始したクエリが強制終了されるまでの最長時間が３時間であることを示す。図５の１レコード目に示す例では、習熟度がレベル３のユーザがデータベース管理システムを利用する際に実行を開始したクエリが強制終了されるまでの最長時間が３時間であることを示す。図５の２レコード目から４レコード目に示す例では、習熟度がレベル２、レベル１またはレベル０のユーザがデータベース管理システムを利用する際に実行を開始したクエリが強制終了されるまでの最長時間が２時間であることを示す。
【００６７】
「１００％テーブル参照」は、ユーザがデータベースに格納された全てのデータを参照可能であるか否かを示す。図５に示す例では、１００％テーブル参照「可」は、ユーザがデータベースに格納された全てのデータを参照可能であることを示す。１００％テーブル参照「不可」は、ユーザがデータベースに格納された全てのデータを参照不可能であることを示す。例えば、１００％テーブル参照「不可」は、ユーザがデータベースに格納されたデータのうち所定の割合（例えば、５０％）のデータのみ参照可能であることを示す。図５の１レコード目から３レコード目に示す例では、習熟度がレベル３、レベル２またはレベル１のユーザがデータベースに格納された全てのデータを参照可能であることを示す。図５の４レコード目に示す例では、習熟度がレベル０のユーザがデータベースに格納された全てのデータを参照不可能であることを示す。
【００６８】
（制御部１３０）
図２の説明に戻って、制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、情報処理装置１００内部の記憶装置に記憶されている各種プログラム（生成プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００６９】
図２に示すように、制御部１３０は、サービス提供部１３１と、取得部１３２と、算出部１３３と、判定部１３４と、決定部１３５とを有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部１３０の内部構成は、図２に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００７０】
（サービス提供部１３１）
サービス提供部１３１は、所定のサービスを提供する。サービス提供部１３１は、例えば、データベース管理システムに関するサービスを提供する。具体的には、サービス提供部１３１は、アプリケーションを経由してユーザ端末１０からクエリを受け付ける。続いて、サービス提供部１３１は、ユーザ端末１０からクエリを受け付けると、クエリを実行する。より具体的には、サービス提供部１３１は、ユーザ端末１０からクエリを受け付けると、複数の中央処理装置によってクエリを並行処理する。サービス提供部１３１は、クエリを実行すると、クエリの実行結果をユーザ端末１０に配信する。
【００７１】
（取得部１３２）
取得部１３２は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報を取得する。取得部１３２は、例えば、データベース管理システムを利用する際に用いられるリソースに関する情報であるリソース情報を取得する。具体的には、取得部１３２は、サービス提供部１３１によってクエリが実行されると、クエリを実行する際に用いられたリソースに関する情報をクエリごとに取得する。取得部１３２は、クエリを実行する際に用いられたリソースに関する情報を取得すると、取得した情報をクエリ情報記憶部１２２に格納する。
【００７２】
例えば、取得部１３２は、リソースに関する情報として、ユーザから受け付けたクエリの実行回数に関する情報を取得する。例えば、取得部１３２は、クエリ情報記憶部１２２を参照して、所定期間にユーザから受け付けたクエリの実行回数を取得する。
【００７３】
また、取得部１３２は、リソース情報として、ユーザが所定のサービスを利用する際に用いた中央処理装置に関するリソースであるＣＰＵリソースに関する情報を取得する。例えば、取得部１３２は、リソース情報として、ユーザが所定のサービスを利用する際に用いた中央処理装置の計算時間であるＣＰＵ時間を取得する。なお、取得部１３２は、リソース情報として、ユーザが所定のサービスを利用する際に用いた中央処理装置のクロック数を取得してもよい。例えば、取得部１３２は、リソース情報として、ユーザが所定のサービスを利用する際に用いたＣＰＵリソースの使用量がＣＰＵリソースの容量に対して占める割合であるＣＰＵ占有率を取得する。例えば、取得部１３２は、リソース情報として、ユーザが所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散を取得する。
【００７４】
また、取得部１３２は、リソースに関する情報として、ユーザが所定のサービスを利用する際に用いた記憶領域の容量に関する情報を取得する。例えば、取得部１３２は、記憶領域の容量に関する情報として、スプーリングに用いられた記憶領域の容量に関する情報を取得する。スプーリングとは、低速な装置とのデータのやり取りを高速な磁気ディスクを介して行うことで中央処理装置の処理効率を高める方法である。
【００７５】
（算出部１３３）
算出部１３３は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を示す指標値を算出する。具体的には、算出部１３３は、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を示す指標値として、クエリ実行スコアとトレーニング受講スコアと運営協力スコアの各スコアを算出する。なお、アカウントが付与されてから所定期間（例えば、１か月）を経過したユーザであって、一般的なユーザのスコアの平均を０点とする。算出部１３３は、０点からクエリ実行スコアを減点、又は、トレーニング受講スコアと運営協力スコアを加算することにより、スコアを算出する。算出部１３３は、各スコアを算出すると、算出したスコアをユーザＩＤと対応付けてユーザ情報記憶部１２３に格納する。
【００７６】
例えば、算出部１３３は、リソース情報が所定の条件を満たす場合に、クエリ実行スコアを減点する。例えば、算出部１３３は、所定の条件として、所定期間内にＣＰＵ時間が所定の時間（例えば１００Ｋ秒）以上のクエリである高負荷クエリを所定の回数（例えば１０回）以上実行した場合に、クエリ実行スコアを減点する。図１に示す例では、算出部１３３は、所定期間内にユーザＵ１から受け付けた高負荷クエリを１０回実行したので、ユーザＵ１が所定の条件を満たすと判定する。続いて、算出部１３３は、ユーザＵ１が所定の条件を満たすと判定したので、ユーザＵ１のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。算出部１３３は、クエリ実行スコアを算出すると、算出したスコアをユーザＵ１のユーザＩＤと対応付けてユーザ情報記憶部１２３のクエリ実行スコアの項目に格納する。
【００７７】
また、算出部１３３は、所定の条件を満たす場合として、ユーザから受け付けたクエリを実行する際に用いられたＣＰＵリソースの使用量がＣＰＵリソースの全容量に対して所定の割合（例えば５％）以上占有した場合に、ユーザのクエリ実行スコアを減点する。図４に示すユーザＵ３の例では、算出部１３３は、ユーザＵ３から同時にＣＰＵ時間が１０Ｋ秒のクエリを１０個受け付けて実行した結果、ＣＰＵ占有率が５％以上となったので、ユーザＵ３が所定の条件を満たすと判定する。続いて、算出部１３３は、ユーザＵ３が所定の条件を満たすと判定したので、ユーザＵ３のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。算出部１３３は、クエリ実行スコアを算出すると、算出したスコアをユーザＵ３のユーザＩＤと対応付けてユーザ情報記憶部１２３のクエリ実行スコアの項目に格納する。
【００７８】
また、算出部１３３は、所定の条件を満たす場合として、ユーザから受け付けたクエリを実行するために要した記憶領域の容量が、ユーザに割り当てられている記憶容量を超えた回数が所定の回数（例えば１０回）以上である場合に、ユーザのクエリ実行スコアを減点する。図４に示すユーザＵ４の例では、算出部１３３は、ユーザＵ４から受け付けたクエリを実行するために要した記憶領域の容量が、ユーザＵ４に割り当てられている記憶容量である６ＫＢを超えた回数が１０回であるので、ユーザＵ４が所定の条件を満たすと判定する。続いて、算出部１３３は、ユーザＵ４が所定の条件を満たすと判定したので、ユーザＵ４のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。算出部１３３は、クエリ実行スコアを算出すると、算出したスコアをユーザＵ４のユーザＩＤと対応付けてユーザ情報記憶部１２３のクエリ実行スコアの項目に格納する。
【００７９】
また、算出部１３３は、所定の条件を満たす場合として、ユーザから受け付けたクエリの計算時間が所定の時間（例えば２時間）を超えたため、クエリを強制的に終了した回数が所定の回数（例えば３回）以上である場合に、ユーザのクエリ実行スコアを減点する。図４に示すユーザＵ５の例では、算出部１３３は、ユーザＵ５から受け付けたクエリを強制的に終了した回数が３回であるので、ユーザＵ５が所定の条件を満たすと判定する。続いて、算出部１３３は、ユーザＵ５が所定の条件を満たすと判定したので、ユーザＵ５のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。算出部１３３は、クエリ実行スコアを算出すると、算出したスコアをユーザＵ５のユーザＩＤと対応付けてユーザ情報記憶部１２３のクエリ実行スコアの項目に格納する。
【００８０】
また、算出部１３３は、所定の条件を満たす場合として、ユーザから受け付けたクエリを実行するために要したＣＰＵ時間が所定の時間を大幅に上回った場合（例えば５００Ｋ秒以上）に、ユーザのクエリ実行スコアを減点する。図４に示すユーザＵ６の例では、算出部１３３は、ユーザＵ６から受け付けたクエリを実行するために要したＣＰＵ時間が５００Ｋ秒以上であるクエリを１回実行したので、ユーザＵ６が所定の条件を満たすと判定する。続いて、算出部１３３は、ユーザＵ６が所定の条件を満たすと判定したので、ユーザＵ６のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。算出部１３３は、クエリ実行スコアを算出すると、算出したスコアをユーザＵ６のユーザＩＤと対応付けてユーザ情報記憶部１２３のクエリ実行スコアの項目に格納する。
【００８１】
また、算出部１３３は、所定の条件を満たす場合として、ユーザから受け付けたクエリを実行する際に用いられた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散が所定の閾値を下回る場合に、ユーザのクエリ実行スコアを減点する。例えば、算出部１３３は、ユーザＵ７から受け付けたクエリを実行した際のＣＰＵリソースの使用量の分散が所定の閾値を下回るので、ユーザＵ７が所定の条件を満たすと判定する。続いて、算出部１３３は、ユーザＵ７が所定の条件を満たすと判定したので、ユーザＵ７のクエリ実行スコアとして所定の点数（例えば１０点）を減点する。算出部１３３は、クエリ実行スコアを算出すると、算出したスコアをユーザＵ７のユーザＩＤと対応付けてユーザ情報記憶部１２３のクエリ実行スコアの項目に格納する。
【００８２】
また、算出部１３３は、ユーザがデータベース管理システムの利用に関する各種のトレーニングを受講した場合に、ユーザのトレーニング受講スコアを加算する。図１に示す例では、算出部１３３は、ユーザＵ２は、ＳＱＬの記述方法に関する初心者向けトレーニングの受講歴があるため、ユーザＵ２のトレーニング受講スコアを１０点加算する。算出部１３３は、トレーニング受講スコアを算出すると、算出したスコアをユーザＵ２のユーザＩＤと対応付けてユーザ情報記憶部１２３のトレーニング受講スコアの項目に格納する。
【００８３】
また、算出部１３３は、データベース管理システムの運営に協力した場合に、ユーザのトレーニング受講スコアを加算する。図１に示す例では、算出部１３３は、ユーザＵ２は、高負荷クエリのＳＱＬ文を解析するために協力した実績があるため、運営協力スコアを１０点加算する。算出部１３３は、運営協力スコアを算出すると、算出したスコアをユーザＵ２のユーザＩＤと対応付けてユーザ情報記憶部１２３の運営協力スコアの項目に格納する。
【００８４】
（判定部１３４）
判定部１３４は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を判定する。具体的には、判定部１３４は、習熟度として、ユーザが所定のサービスを利用する際に用いるリソースの使用に関する習熟度を判定する。より具体的には、判定部１３４は、リソース情報として、ユーザから受け付けた所定のサービスに関する一連の処理命令であるクエリを実行する際に用いられたリソースに関する情報に基づいて、習熟度を判定する。また、判定部１３４は、リソース情報として、ユーザから受け付けた所定のサービスに関する一連の処理命令であるクエリの実行回数に基づいて、習熟度を判定する。また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた記憶領域の容量に基づいて、習熟度を判定する。また、判定部１３４は、ユーザが所定のサービスを利用する際に用いた中央処理装置に関するリソースであるＣＰＵリソースに関する情報に基づいて、習熟度を判定する。また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた中央処理装置の計算時間であるＣＰＵ時間に基づいて、習熟度を判定する。また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いたＣＰＵリソースの使用量がＣＰＵリソースの容量に対して占める割合であるＣＰＵ占有率に基づいて、習熟度を判定する。また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かに基づいて、習熟度を判定する。例えば、判定部１３４は、ユーザが所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散に基づいて、ＣＰＵリソースの使用量が所定の中央処理装置に偏っているか否かを判定する。
【００８５】
また、判定部１３４は、算出部１３３によって算出されたクエリ実行スコアに基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を判定する。具体的には、判定部１３４は、算出部１３３によって算出されたスコアが一般的なユーザのスコアの平均である０点である場合に、そのユーザの習熟度をレベル２であると判定する。また、判定部１３４は、算出部１３３によって算出されたスコアが一般的なユーザのスコアの平均である０点を下回る場合に、そのユーザの習熟度をレベル２よりも低いレベル１であると判定する。また、判定部１３４は、算出部１３３によって算出されたスコアが一般的なユーザのスコアの平均である０点を上回る場合に、そのユーザの習熟度をレベル２よりも高いレベル３であると判定する。
【００８６】
（決定部１３５）
決定部１３５は、判定部１３４によって判定された習熟度に応じて、ユーザが所定のサービスを利用する際に用いるリソースを決定する。具体的には、決定部１３５は、判定部１３４によって判定された習熟度が高いほど、ユーザが所定のサービスを利用する際に用いるリソースを優先して割り当てることを決定する。
【００８７】
例えば、決定部１３５は、判定部１３４によって判定された習熟度が高いほど、ＣＰＵリソースを優先して割り当てることを決定する。決定部１３５は、リソースとして、ユーザから受け付けた所定のサービスに関する一連の処理命令であるクエリに中央処理装置の使用権を優先して割り当てることを決定する。
【００８８】
また、決定部１３５は、リソースとして、ユーザが所定のサービスを利用する際に使用可能な記憶領域の容量を優先して割り当てることを決定する。
【００８９】
また、決定部１３５は、リソースとして、ユーザが同時に実行可能な所定のサービスに関する一連の処理命令であるクエリの本数を優先して割り当てることを決定する。
【００９０】
また、決定部１３５は、リソースとして、ユーザが実行を開始した所定のサービスに関する一連の処理命令であるクエリが強制終了されるまでの時間を優先して割り当てることを決定する。
【００９１】
〔３．高負荷ユーザの判定処理のフロー〕
次に、図６を用いて、実施形態に係る高負荷クエリの判定処理の手順について説明する。図６は、実施形態に係る高負荷クエリの判定処理手順を示すフローチャートである。図６に示す例では、情報処理装置１００は、クエリを実行する際に用いられたリソースに関する情報であるリソース情報が所定の条件を満たすか否かを判定する（ステップＳ１０１）。情報処理装置１００は、クエリを実行する際に用いられたリソースに関する情報であるリソース情報が所定の条件を満たさないと判定する場合（ステップＳ１０１；Ｎｏ）は、処理を終了する。一方、情報処理装置１００は、クエリを実行する際に用いられたリソースに関する情報であるリソース情報が所定の条件を満たすと判定する場合（ステップＳ１０１；Ｙｅｓ）は、そのユーザを高負荷ユーザであると判定する。具体的には、情報処理装置１００は、そのユーザのクエリ実行スコアを減点する。
【００９２】
〔４．情報処理のフロー〕
次に、図７を用いて、実施形態に係る情報処理の手順について説明する。図７は、実施形態に係る情報処理手順を示すフローチャートである。図７に示す例では、情報処理装置１００は、所定のサービスの利用に関する習熟度を示す指標値を算出する（ステップＳ２０１）。続いて、情報処理装置１００は、算出した指標値に基づいて、所定のサービスの利用に関するユーザの習熟度を判定する（ステップＳ２０２）。続いて、情報処理装置１００は、判定したユーザの習熟度に応じてリソースを決定する（ステップＳ２０３）。
【００９３】
〔５．変形例〕
上述した実施形態に係る情報処理システム１は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、情報処理システム１の他の実施形態について説明する。なお、実施形態と同一部分には、同一符号を付して説明を省略する。
【００９４】
図１では、情報処理装置１００が、ユーザから受け付けたクエリを実行する際に用いられたリソースに関する情報であるリソース情報に基づいて、ユーザの習熟度を判定する例を示したが、ユーザから受け付けたクエリの内容に基づいて、ユーザの習熟度を判定してもよい。
【００９５】
具体的には、判定部１３４は、クエリ情報記憶部１２２を参照して、ユーザから受け付けたクエリの内容が所定の条件を満たすか否かに基づいて、ユーザから受け付けたクエリが高負荷クエリであるか否かを判定する。判定部１３４は、ユーザから受け付けたクエリの内容が所定の条件を満たす場合に、ユーザから受け付けたクエリが高負荷クエリであると判定する。例えば、判定部１３４は、ユーザから受け付けたクエリを実行する際に、リソースの無駄使いが生じると判定されるクエリである場合は、高負荷クエリであると判定する。
【００９６】
ここで、リソースの無駄使いとは、上述したＣＰＵリソースの無駄使いや、記憶領域の容量の無駄使いを意味する。そして、算出部１３３は、判定部１３４によって判定された高負荷クエリの実行回数に基づいて、クエリ実行スコアを算出する。判定部１３４は、算出部１３３によって算出されたクエリ実行スコアに基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を判定する。
【００９７】
より具体的には、判定部１３４は、クエリ情報記憶部１２２を参照して、ユーザから受け付けたＳＱＬ文の記述の仕方が所定の条件を満たす場合に、ユーザから受け付けたクエリが高負荷クエリであると判定する。例えば、判定部１３４は、ユーザから受け付けたＳＱＬ文の記述の仕方として、ＷＨＥＲＥ句の記述の仕方が所定の条件を満たす場合に、ユーザから受け付けたクエリが高負荷クエリであると判定する。ここで、ＷＨＥＲＥ句とは、ＳＱＬ文のうち、表の中から特定の行や列を抽出する際の抽出条件や表と表を結合する際の結合条件等を記述する部分である。
【００９８】
具体的には、判定部１３４は、クエリを実行する際に記憶領域の容量を無駄使いしたクエリを、高負荷クエリであると判定する。例えば、判定部１３４は、クエリを実行するために１日分のデータしか必要がないのに、必要以上に長い集計期間のデータを抽出する抽出条件がＷＨＥＲＥ句に記載されているクエリを高負荷クエリであると判定する。例えば、判定部１３４は、クエリを実行するために所定のサービスに関するデータしか必要がないのに、全サービスのデータを抽出する抽出条件がＷＨＥＲＥ句に記載されているクエリを高負荷クエリであると判定する。
【００９９】
また、判定部１３４は、クエリを実行する際にＣＰＵリソースを無駄使いしたクエリを、高負荷クエリであると判定する。例えば、判定部１３４は、インデックスが作成されている列があるにも関わらず、インデックスが作成されている列を使わずに表と表を結合する結合条件がＷＨＥＲＥ句に記載されているクエリを高負荷クエリであると判定する。例えば、判定部１３４は、インデックスが作成されている列を使ってデータを抽出できるにも関わらず、インデックスが作成されている列を使わずにデータを抽出する抽出条件がＷＨＥＲＥ句に記載されているクエリを高負荷クエリであると判定する。
【０１００】
〔６．効果〕
上述してきたように、実施形態に係る情報処理装置１００は、判定部１３４と決定部１３５とを備える。判定部１３４は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を判定する。決定部１３５は、判定部１３４によって判定された習熟度に応じて、ユーザが所定のサービスを利用する際に用いるリソースを決定する。
【０１０１】
これにより、情報処理装置１００は、サービスの利用に関するユーザの習熟度に応じて、リソースを適切に管理することができる。また、情報処理装置１００は、サービスの利用に関するユーザの習熟度に応じて、ユーザがサービスを利用する際のメリットを享受することを可能にする。したがって、情報処理装置１００は、サービスの利用に関するユーザの習熟度を向上させることができる。また、情報処理装置１００は、サービスの利用に関するユーザの習熟度を向上させることにより、ユーザが効率的にサービスを利用することを可能にする。また、情報処理装置１００は、個々のユーザが効率的にサービスを利用することにより、全体としてユーザが利用可能なリソースを増やすことができる。したがって、情報処理装置１００は、サービスの利用に用いられるリソースを適切に管理することができる。
【０１０２】
また、判定部１３４は、習熟度として、ユーザが所定のサービスを利用する際に用いるリソースの使用に関する習熟度を判定する。
【０１０３】
これにより、情報処理装置１００は、リソースの使用に関するユーザの習熟度に応じて、サービスの利用に用いられるリソースを適切に管理することができる。また、情報処理装置１００は、リソースの使用に関するユーザの習熟度に応じて、ユーザがサービスを利用する際のメリットを享受することを可能にする。したがって、情報処理装置１００は、リソースの使用に関するユーザの習熟度を向上させることができる。また、情報処理装置１００は、リソースの使用に関するユーザの習熟度を向上させることにより、ユーザが効率的にリソースを利用することを可能にする。また、情報処理装置１００は、個々のユーザが効率的にリソースを利用することにより、全体としてユーザが利用可能なリソースを増やすことができる。したがって、情報処理装置１００は、サービスの利用に用いられるリソースを適切に管理することができる。
【０１０４】
また、判定部１３４は、リソース情報として、ユーザから受け付けた所定のサービスに関する一連の処理命令であるクエリを実行する際に用いられたリソースに関する情報に基づいて、習熟度を判定する。
【０１０５】
これにより、情報処理装置１００は、クエリを実行する際にリソースを適切に用いるようユーザを促すことができる。したがって、情報処理装置１００は、クエリの実行に用いられるリソースを適切に管理することができる。
【０１０６】
また、判定部１３４は、リソース情報として、ユーザから受け付けた所定のサービスに関する一連の処理命令であるクエリの実行回数に基づいて、習熟度を判定する。
【０１０７】
これにより、情報処理装置１００は、ユーザから受け付けた個々のクエリだけでなく、ユーザから受け付けたクエリの全体的な傾向に基づいて、ユーザの習熟度を判定することができる。したがって、情報処理装置１００は、クエリの実行に用いられるリソースをより適切に管理することができる。
【０１０８】
また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた記憶領域の容量に基づいて、習熟度を判定する。
【０１０９】
これにより、情報処理装置１００は、ユーザが所定のサービスを利用する際に記憶領域の容量を適切に用いるようユーザを促すことができる。したがって、情報処理装置１００は、所定のサービスの利用に用いられる記憶領域の容量を適切に管理することができる。
【０１１０】
また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた中央処理装置に関するリソースであるＣＰＵリソースに関する情報に基づいて、習熟度を判定する。
【０１１１】
これにより、情報処理装置１００は、ユーザが所定のサービスを利用する際にＣＰＵリソースを適切に用いるようユーザを促すことができる。したがって、情報処理装置１００は、所定のサービスの利用に用いられるＣＰＵリソースを適切に管理することができる。
【０１１２】
また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた中央処理装置の計算時間であるＣＰＵ時間に基づいて、習熟度を判定する。
【０１１３】
これにより、情報処理装置１００は、ユーザが所定のサービスを利用する際にＣＰＵ時間を適切に用いるようユーザを促すことができる。したがって、情報処理装置１００は、所定のサービスの利用に用いられるＣＰＵ時間を適切に管理することができる。
【０１１４】
また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いたＣＰＵリソースの使用量がＣＰＵリソースの容量に対して占める割合であるＣＰＵ占有率に基づいて、習熟度を判定する。
【０１１５】
これにより、情報処理装置１００は、ユーザが所定のサービスを利用する際にＣＰＵ占有率を適切に用いるようユーザを促すことができる。したがって、情報処理装置１００は、所定のサービスの利用に用いられるＣＰＵ占有率を適切に管理することができる。
【０１１６】
また、判定部１３４は、リソース情報として、ユーザが所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かに基づいて、習熟度を判定する。判定部１３４は、ユーザが所定のサービスを利用する際に用いた複数の中央処理装置に関するＣＰＵリソースの使用量が、複数の中央処理装置のうち、所定の中央処理装置に偏っているか否かを示すＣＰＵリソースの使用量の分散に基づいて、ＣＰＵリソースの使用量が所定の中央処理装置に偏っているか否かを判定する。
【０１１７】
これにより、情報処理装置１００は、ユーザが所定のサービスを利用する際にＣＰＵリソースが所定の中央処理装置に偏らないように、複数の中央処理装置をバランスよく用いるようユーザを促すことができる。また、情報処理装置１００は、複数の中央処理装置をバランスよく用いるようユーザを促すことにより、ユーザができるだけ効率よく中央処理装置を使用するよう促すことができる。また、情報処理装置１００は、個々のユーザが効率的に中央処理装置を使用することにより、全体としてユーザが使用可能なＣＰＵリソースを増やすことができる。したがって、情報処理装置１００は、所定のサービスの利用に用いられるリソースを適切に管理することができる。
【０１１８】
また、実施形態に係る情報処理装置１００は、算出部１３３をさらに備える。算出部１３３は、所定のサービスの利用に用いられるリソースに関する情報であるリソース情報に基づいて、所定のサービスを利用するユーザの所定のサービスの利用に関する習熟度を示す指標値を算出する。判定部１３４は、算出部１３３によって算出された指標値に基づいて、習熟度を判定する。
【０１１９】
これにより、情報処理装置１００は、ユーザの習熟度を指標値によって客観的に判定することができる。
【０１２０】
また、決定部１３５は、判定部１３４によって判定された習熟度が高いほど、ユーザが所定のサービスを利用する際に用いるリソースを優先して割り当てることを決定する。
【０１２１】
これにより、情報処理装置１００は、サービスの利用に関するユーザの習熟度が高いほど、ユーザがサービスを利用する際に大きなメリットを享受することを可能にする。したがって、情報処理装置１００は、サービスの利用に関するユーザの習熟度を向上させることができる。また、情報処理装置１００は、サービスの利用に関するユーザの習熟度を向上させることにより、ユーザが効率的にサービスを利用することを可能にする。また、情報処理装置１００は、個々のユーザが効率的にサービスを利用することにより、全体としてユーザが利用可能なリソースを増やすことができる。したがって、情報処理装置１００は、サービスの利用に用いられるリソースを適切に管理することができる。
【０１２２】
また、決定部１３５は、リソースとして、ユーザが所定のサービスを利用する際に用いる中央処理装置に関するリソースであるＣＰＵリソースを優先して割り当てることを決定する。
【０１２３】
これにより、情報処理装置１００は、サービスの利用に関するユーザの習熟度が高いほど、優先的にＣＰＵリソースを使用できるというメリットを享受することを可能にする。
【０１２４】
また、決定部１３５は、リソースとして、ユーザから受け付けた所定のサービスに関する一連の処理命令であるクエリに中央処理装置の使用権を優先して割り当てることを決定する。
【０１２５】
これにより、情報処理装置１００は、サービスの利用に関する習熟度が高いユーザほど、クエリを実行する際にＣＰＵを優先的に使用できるというメリットを享受することを可能にする。
【０１２６】
また、決定部１３５は、リソースとして、ユーザが所定のサービスを利用する際に使用可能な記憶領域の容量を優先して割り当てることを決定する。
【０１２７】
これにより、情報処理装置１００は、サービスの利用に関する習熟度が高いユーザほど、クエリを実行する際により多くの記憶領域の容量を使用できるというメリットを享受することを可能にする。
【０１２８】
また、決定部１３５は、リソースとして、ユーザが同時に実行可能な所定のサービスに関する一連の処理命令であるクエリの本数を優先して割り当てることを決定する。
【０１２９】
これにより、情報処理装置１００は、サービスの利用に関する習熟度が高いユーザほど、同時に実行可能なクエリの本数が多いというメリットを享受することを可能にする。
【０１３０】
また、決定部１３５は、リソースとして、ユーザが実行を開始した所定のサービスに関する一連の処理命令であるクエリが強制終了されるまでの時間を優先して割り当てることを決定する。
【０１３１】
これにより情報処理装置１００は、サービスの利用に関する習熟度が高いユーザほど、処理に長い時間がかかるクエリであっても実行できるというメリットを享受することを可能にする。
【０１３２】
〔７．ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置１００は、例えば図８に示すような構成のコンピュータ１０００によって実現される。図８は、情報処理装置１００の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ１３００、ＨＤＤ１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を備える。
【０１３３】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０１３４】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、所定の通信網を介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータを所定の通信網を介して他の機器へ送信する。
【０１３５】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、生成したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【０１３６】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０１３７】
例えば、コンピュータ１０００が実施形態に係る情報処理装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムまたはデータを実行することにより、制御部１３０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【０１３８】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１３９】
〔８．その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０１４０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１４１】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１４２】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、判定部は、判定手段や判定回路に読み替えることができる。
【符号の説明】
【０１４３】
１  情報処理システム
１０  ユーザ端末
１００  情報処理装置
１２１  データベース記憶部
１２２  クエリ情報記憶部
１２３  ユーザ情報記憶部
１２４  リソース情報記憶部
１３１  サービス提供部
１３２  取得部
１３３  算出部
１３４  判定部
１３５  決定部
【図１】
2020009379.tif 000003
【図２】
2020009379.tif 000004
【図３】
2020009379.tif 000005
【図４】
2020009379.tif 000006
【図５】
2020009379.tif 000007
【図６】
2020009379.tif 000008
【図７】
2020009379.tif 000009
【図８】
2020009379.tif 000010