JP6911059B2 - Cpu利用およびコードリファクタリングのためのクエリオプティマイザー - Google Patents
Cpu利用およびコードリファクタリングのためのクエリオプティマイザー Download PDFInfo
- Publication number
- JP6911059B2 JP6911059B2 JP2018563782A JP2018563782A JP6911059B2 JP 6911059 B2 JP6911059 B2 JP 6911059B2 JP 2018563782 A JP2018563782 A JP 2018563782A JP 2018563782 A JP2018563782 A JP 2018563782A JP 6911059 B2 JP6911059 B2 JP 6911059B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- functionally equivalent
- program code
- computing device
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
[0024]本明細書および添付の図面は、本発明の特徴を組み込む1つまたは複数の実施形態を開示する。本発明の範囲は、開示の実施形態に限定されない。開示の実施形態は本発明を例示するにすぎず、開示の実施形態の修正バージョンも本発明によって包含される。本発明の実施形態は、本明細書に添付の特許請求の範囲によって定義される。
[0028]現在の多くのプログラミング言語が、クエリをネイティブにサポートする。例えば、Microsoft Corporationによって開発されたMicrosoft .NET Frameworkは、LINQ(統合言語クエリ)の形でクエリをサポートし、一方、カリフォルニア州レッドウッドシティのOracle Corporationによって開発されたJava(登録商標)は、Streamsの形でクエリをサポートする。プログラミング言語におけるクエリのネイティブサポートは、開発者のためにクエリの実際の実装を担当することによって、開発者が彼らのプログラムコードのロジック部分に集中することを可能にする。これにより、開発者は、彼らのコーディングのスピードアップを可能にすることができる。しかし、非効率的なクエリの影響を知らないこと、または十分に理解していないことが、完全に機能しないプログラムコードの開発をもたらす可能性がある。例えば、このようなプログラムコードは、結局は未使用に終わるデータを取得するクエリ、冗長量のデータを取得するクエリ、および/または必要以上に頻繁に、もしくは必要以上に早くデータを取得するクエリを含むことがある。クエリは、同じ論理的な結果を生じる多くの様々なやり方で書かれてよいが、性能に対して非常に様々な影響を与える。
概要:不必要なOrderBy演算を無くすために使用される
ルールの仕組み:OrderByミニマイザは、プログラムコード内で見つけられたOrderBy演算子のリストを1ステップずつ実行し、プログラムコード内で結果が使用されることのないOrderBy演算子のいずれかを見つける(ここで「使用される」は、OrderBy演算子によって行われる順序付けが、後の数式またはメソッドによって依存されない、つまり後の数式またはメソッドによって出力されないか、または要求されないということを意味する)。このような見つけられたOrderBy演算子に対して、OrderByミニマイザは、冗長であるとしてプログラムコードからOrderBy演算子を削除し、コードライン文の削除(例えば、変数名を置き換えること、等)によって影響を受けるプログラムコードの他の任意のラインを書き換える。
概要:「ToList」、「ToDictionary」、等の「ToCurrent」タイプの演算子を何度も連続して実行する複雑なクエリの場合に使用される。これらのToCurrent演算子のそれぞれはコストがかかり、これらのシーケンス内では、これらはシーケンス内のlast演算子を除いて冗長である。
概要:クエリ演算子によってリクエストされた大量のデータが最終的に使用されないときに使用されるので、データ取得が問題なく減らされるか、または全く行われないこともある。
概要:クエリ演算子によってリクエストされた大量のデータが最終的に使用されないときに使用されるので、データ取得が問題なく減らされるか、または全く行われないこともある。
概要:単一の非常に大きいデータエンティティが取得されるが、データの一部だけが最終的に使用されるときに使用される。
[0079](1)ファイルの取得をリクエストするが、(ファイルの内容を使用するのではなく)ファイルのメタデータだけを最終的に使用してファイルがどれだけ大きいかを判定する。このルールは、クエリ演算子を使用してファイル全体を取得しないようにし、代わりにクエリ演算子を使用してファイルのメタデータを取得するために使用されてよい(メタデータは、ファイル全体よりサイズが小さい、いくつかのファクタであることがある)。
概要:クエリが単一の値を利用しているときに使用されるので、メモリ内でデータ全体の構造を構築する必要はない。
[0082](G)ルール名:Last()演算子を使用する際の列挙の逆転
概要:最後の項目だけが必要とされる場合に使用されるので、開始から終了までを列挙することは非効率的である。逆の順序で列挙することによって、性能を向上させる。
[0095]コンピューティングデバイス102、クエリオプティマイザー104、コンパイラ204、開発アプリケーション200、ソースコードエディター202、コンパイラ204、デバッガーツール206、クエリ検出器402、遅延エクステンダー404、等価クエリセットジェネレーター406、延期可能クエリ検出器902、クエリ式アセンブラ904、内容決定器1104、ルールセレクター1106、フローチャート300、フローチャート500、フローチャート700、フローチャート800、フローチャート1000、およびフローチャート1200は、ハードウェア、またはソフトウェアおよび/もしくはファームウェアと組み合わされたハードウェアに実装されてよい。例えば、クエリオプティマイザー104、コンパイラ204、開発アプリケーション200、ソースコードエディター202、コンパイラ204、デバッガーツール206、クエリ検出器402、遅延エクステンダー404、等価クエリセットジェネレーター406、延期可能クエリ検出器902、クエリ式アセンブラ904、内容決定器1104、ルールセレクター1106、フローチャート300、フローチャート500、フローチャート700、フローチャート800、フローチャート1000、および/またはフローチャート1200は、1つまたは複数のプロセッサ内で実行され、コンピューター可読ストレージ媒体に格納されるように構成されたコンピュータープログラムコード/命令として実装されてよい。一方、コンピューティングデバイス102、クエリオプティマイザー104、コンパイラ204、開発アプリケーション200、ソースコードエディター202、コンパイラ204、デバッガーツール206、クエリ検出器402、遅延エクステンダー404、等価クエリセットジェネレーター406、延期可能クエリ検出器902、クエリ式アセンブラ904、内容決定器1104、ルールセレクター1106、フローチャート300、フローチャート500、フローチャート700、フローチャート800、フローチャート1000、および/またはフローチャート1200は、ハードウェアロジック/電気回路機器として実装されてよい。
[0107]1つの実施形態において、方法は、プログラムコード内の複数のクエリを検出することと、クエリがプログラムコード内でそこまでに評価される遅延を拡大させることと、検出されたクエリより効率的に評価する機能的に等価なクエリセットを生成するために、複数のルールを含むルールセットを検出されたクエリに適用することとを含む。
[0117]別の実施形態において、コンピューティングデバイスは、少なくとも1つのプロセッサ回路と、少なくとも1つのプロセッサ回路によって実行されるように構成されたプログラムコードを格納する少なくとも1つのメモリであって、演算を行うように構成されたプログラムコードが、プログラムコード内の複数のクエリを検出すること、クエリがプログラムコード内でそこまでに評価される遅延を拡大させること、および検出されたクエリより効率的に評価する機能的に等価なクエリセットを生成するために、複数のルールを含むルールセットを検出されたクエリに適用することを含む、少なくとも1つのメモリとを備える。
[0126]別の実施形態において、コンピューティングデバイスは、少なくとも1つのプロセッサ回路と、少なくとも1つのプロセッサ回路によって実行されるように構成されたプログラムコードを格納する少なくとも1つのメモリであって、プログラムコードが、プログラムコード内の複数のクエリを検出するように構成されるクエリ検出器、クエリがプログラムコード内でそこまでに評価される遅延を拡大させるように構成される遅延エクステンダー、および検出されたクエリより効率的に評価する機能的に等価なクエリセットを生成するために、複数のルールを含むルールセットを検出されたクエリに適用するように構成される等価クエリセットジェネレーターを含む、少なくとも1つのメモリと、を備える。
[0127]様々な本発明の実施形態が上述されたが、これらはほんの一例として提示され、限定されないということを理解されたい。添付の特許請求の範囲に規定されたような本発明の精神および範囲から逸脱することなく、形式および詳細の様々な変更が、その中で行われてよいということが当業者によって理解されよう。したがって、本発明の広がりおよび範囲は、上述の例示的な実施形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲およびその均等物によってのみ定義されるべきである。
Claims (20)
- コンピューティングデバイスが実行する方法であって、
プログラムコード内の複数のクエリを検出するステップと、
前記クエリが前記プログラムコード内で評価されるまでの遅延を拡大させるステップと、
前記プログラムコードの実行中に、前記複数のクエリが実行される前記コンピューティングデバイスの実行時の条件を決定するステップと、
遅延を拡大させた前記クエリが、データセットを取得し、前記データセットをソートし、ソートされた前記データセットのサブセットを利用するように構成されていることを決定するステップと、
前記プログラムコードの実行中に、決定された前記実行時の条件に関し、遅延を拡大させた前記クエリよりも効率的に評価する機能的に等価なクエリセットを、前記データセットの取得を最小化するルールに基づき生成するステップであって、前記ルールはルールセットに含まれ、前記ルールセットは、前記機能的に等価なクエリセットを、遅延を拡大させた前記クエリが、前記データセットを取得し、前記データセットをソートし、ソートされた前記データセットの前記サブセットを利用するように構成されていることを決定する前記ステップに応答して決定する、ステップと
を含み、
前記機能的に等価なクエリセットは、前記データセットの前記サブセットを、前記データセットの全体を取得すること及び前記データセットをソートすることの代わりに取得するよう構成された、方法。 - 請求項1に記載の方法であって、前記クエリが前記プログラムコード内で評価されるまでの遅延を拡大させる前記ステップは、
前記クエリのうちの評価延期可能な1つまたは複数を検出するステップと、
前記1つまたは複数の評価延期可能なクエリを含む単一のクエリ式を形成するステップと
を含む、方法。 - 請求項1に記載の方法であって、生成する前記ステップは、
複数のクエリコンポーネント間の共通の論理的な前後関係を決定するステップと、
前記共通の論理的な前後関係に対応する前記ルールセットの第2のルールを前記複数のクエリコンポーネントに適用するステップと
を含む、方法。 - 請求項1に記載の方法であって、生成された前記機能的に等価なクエリセットは、前記複数のクエリのクエリ結果より少ないメモリ空間しか消費せずにクエリ結果を生成することと、前記複数のクエリより実行の時間がかからずにクエリ結果を生成することと、前記複数のクエリより少ないネットワーク帯域幅しか消費せずにクエリ結果を生成することと、前記複数のクエリより少ない処理能力しか消費せずにクエリ結果を生成することとのうちの少なくとも1つによって、前記複数のクエリよりも効率的に評価する、方法。
- 請求項1に記載の方法であって、生成する前記ステップは、
複数の候補となる機能的に等価なクエリセットを生成するために、前記ルールセットのルールの複数の組合せのクエリコンポーネントへの適用を評価するステップと、
前記複数の候補となる機能的に等価なクエリセットのうち、最大効率ゲインを有する1つの候補となる機能的に等価なクエリセットを選択して、生成された前記機能的に等価なクエリセットとするステップと
を含む、方法。 - 請求項1に記載の方法であって、生成する前記ステップは、
複数の候補となる機能的に等価なクエリセットを生成するために、前記ルールセットのルールの複数の組合せのクエリコンポーネントへの適用を、実行中に評価するステップと、
前記複数の候補となる機能的に等価なクエリセットのうち、最大効率ゲインを有する1つの候補となる機能的に等価なクエリセットを実行中に選択して、生成された前記機能的に等価なクエリセットとするステップと
を含む、方法。 - 請求項6に記載の方法であって、前記候補となる機能的に等価なクエリセットのうちの1つまたは複数によってもたらされる効率性の向上は、実行時の実行条件に少なくとも部分的に依存する、方法。
- 請求項1に記載の方法であって、
機械学習を使用して少なくとも1つのルールを生成して前記ルールセットに追加するステップ
をさらに含む方法。 - 少なくとも1つのプロセッサ回路と、
プログラムを格納する少なくとも1つのメモリと
を含むコンピューティングデバイスであって、前記プログラムは前記少なくとも1つのプロセッサ回路に演算を行わせ、前記演算は、
前記プログラムに含まれるかまたは含まれないプログラムコード内の複数のクエリを検出するステップと、
前記クエリが前記プログラムコード内で評価されるまでの遅延を拡大させるステップと、
前記プログラムコードの実行中に、前記複数のクエリが実行される前記コンピューティングデバイスの実行時の条件を決定するステップと、
遅延を拡大させた前記クエリが、データセットを取得し、前記データセットをソートし、ソートされた前記データセットのサブセットを利用するように構成されていることを決定するステップと、
前記プログラムコードの実行中に、決定された前記実行時の条件に関し、遅延を拡大させた前記クエリよりも効率的に評価する機能的に等価なクエリセットを、前記データセットの取得を最小化するルールに基づき生成するステップであって、前記ルールはルールセットに含まれ、前記ルールセットは、前記機能的に等価なクエリセットを、遅延を拡大させた前記クエリが、前記データセットを取得し、前記データセットをソートし、ソートされた前記データセットの前記サブセットを利用するように構成されていることを決定する前記ステップに応答して決定する、ステップと
を含み、
前記機能的に等価なクエリセットは、前記データセットの前記サブセットを、前記データセットの全体を取得すること及び前記データセットをソートすることの代わりに取得するよう構成された、
コンピューティングデバイス。 - 請求項9に記載のコンピューティングデバイスであって、前記クエリが前記プログラムコード内で評価されるまでの遅延を拡大させる前記ステップは、
前記クエリのうちの評価延期可能な1つまたは複数を検出するステップと、
前記1つまたは複数の評価延期可能なクエリを含む単一のクエリ式を形成するステップと
を含む、コンピューティングデバイス。 - 請求項9に記載のコンピューティングデバイスであって、生成する前記ステップは、
複数のクエリコンポーネント間の共通の論理的な前後関係を決定するステップと、
前記共通の論理的な前後関係に対応する前記ルールセットの第2のルールを前記複数のクエリコンポーネントに適用するステップと
を含む、コンピューティングデバイス。 - 請求項9に記載のコンピューティングデバイスであって、生成する前記ステップは、
複数の候補となる機能的に等価なクエリセットを生成するために、前記ルールセットのルールの複数の組合せのクエリコンポーネントへの適用を評価するステップと、
前記複数の候補となる機能的に等価なクエリセットのうち、最大効率ゲインを有する1つの候補となる機能的に等価なクエリセットを選択して、生成された前記機能的に等価なクエリセットとするステップと
を含む、コンピューティングデバイス。 - 請求項9に記載のコンピューティングデバイスであって、生成する前記ステップは、
複数の候補となる機能的に等価なクエリセットを生成するために、前記ルールセットのルールの複数の組合せのクエリコンポーネントへの適用を、実行中に評価するステップと、
前記複数の候補となる機能的に等価なクエリセットのうち、最大効率ゲインを有する1つの候補となる機能的に等価なクエリセットを実行中に選択して、生成された前記機能的に等価なクエリセットとするステップと
を含む、コンピューティングデバイス。 - 請求項13に記載のコンピューティングデバイスであって、前記候補となる機能的に等価なクエリセットのうちの1つまたは複数によってもたらされる効率性の向上は、実行時の実行条件に少なくとも部分的に依存する、コンピューティングデバイス。
- 請求項9に記載のコンピューティングデバイスであって、前記演算は、
機械学習を使用して少なくとも1つのルールを生成して前記ルールセットに追加するステップ
をさらに含む、コンピューティングデバイス。 - 少なくとも1つのプロセッサ回路と、
プログラムを格納する少なくとも1つのメモリと
を含むコンピューティングデバイスであって、前記プログラムは、前記少なくとも1つのプロセッサ回路を、
前記プログラムに含まれるかまたは含まれないプログラムコード内の複数のクエリを検出するよう構成されたクエリ検出器と、
前記クエリが前記プログラムコード内で評価されるまでの遅延を拡大させるように構成れた遅延エクステンダーと、
等価クエリセットジェネレーターと
として機能させ、前記等価クエリセットジェネレーターは、
前記プログラムコードの実行中に、前記複数のクエリが実行される前記コンピューティングデバイスの実行時の条件を決定することと、
遅延を拡大させた前記クエリが、データセットを取得し、前記データセットをソートし、ソートされた前記データセットのサブセットを利用するように構成されていることを決定することと、
前記プログラムコードの実行中に、決定された前記実行時の条件に関し、遅延を拡大させた前記クエリよりも効率的に評価する機能的に等価なクエリセットを、前記データセットの取得を最小化するルールに基づき生成することであって、前記ルールはルールセットに含まれ、前記ルールセットは、前記機能的に等価なクエリセットを、遅延を拡大させた前記クエリが、前記データセットを取得し、前記データセットをソートし、ソートされた前記データセットの前記サブセットを利用するように構成されていることの前記決定に応答して決定する、生成することと
を行うように構成され、
前記機能的に等価なクエリセットは、前記データセットの前記サブセットを、前記データセットの全体を取得すること及び前記データセットをソートすることの代わりに取得するよう構成された、
コンピューティングデバイス。 - 請求項16に記載のコンピューティングデバイスであって、前記遅延エクステンダーは、
前記クエリのうちの評価延期可能な1つまたは複数を検出し、
前記1つまたは複数の評価延期可能なクエリを含む単一のクエリ式を形成する
ことによって遅延を拡大させるように構成された、コンピューティングデバイス。 - 請求項16に記載のコンピューティングデバイスであって、前記等価クエリセットジェネレーターは、
複数のクエリコンポーネント間の共通の論理的な前後関係を決定し、
前記共通の論理的な前後関係に対応する前記ルールセットの第2のルールを前記複数のクエリコンポーネントに適用する
ことによって前記機能的に等価なクエリセットを生成するように構成された、コンピューティングデバイス。 - 請求項16に記載のコンピューティングデバイスであって、前記等価クエリセットジェネレーターは、
複数の候補となる機能的に等価なクエリセットを生成するために、前記ルールセットのルールの複数の組合せのクエリコンポーネントへの適用を、実行中に評価し、
前記複数の候補となる機能的に等価なクエリセットのうち、最大効率ゲインを有する1つの候補となる機能的に等価なクエリセットを実行中に選択して、生成された前記機能的に等価なクエリセットとする
ことによって前記機能的に等価なクエリセットを生成するように構成された、コンピューティングデバイス。 - 請求項19に記載のコンピューティングデバイスであって、前記候補となる機能的に等価なクエリセットのうちの1つまたは複数によってもたらされる効率性の向上は、実行時の実行条件に少なくとも部分的に依存する、コンピューティングデバイス。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/174,688 US10558458B2 (en) | 2016-06-06 | 2016-06-06 | Query optimizer for CPU utilization and code refactoring |
| US15/174,688 | 2016-06-06 | ||
| PCT/US2017/035085 WO2017213917A1 (en) | 2016-06-06 | 2017-05-31 | Query optimizer for cpu utilization and code refactoring |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2019523942A JP2019523942A (ja) | 2019-08-29 |
| JP2019523942A5 JP2019523942A5 (ja) | 2020-07-09 |
| JP6911059B2 true JP6911059B2 (ja) | 2021-07-28 |
Family
ID=59054257
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018563782A Expired - Fee Related JP6911059B2 (ja) | 2016-06-06 | 2017-05-31 | Cpu利用およびコードリファクタリングのためのクエリオプティマイザー |
Country Status (17)
| Country | Link |
|---|---|
| US (1) | US10558458B2 (ja) |
| EP (1) | EP3465425A1 (ja) |
| JP (1) | JP6911059B2 (ja) |
| KR (1) | KR20190015285A (ja) |
| CN (1) | CN109313547B (ja) |
| AU (1) | AU2017277831B2 (ja) |
| BR (1) | BR112018074025A2 (ja) |
| CA (1) | CA3023326A1 (ja) |
| CL (1) | CL2018003468A1 (ja) |
| CO (1) | CO2018013186A2 (ja) |
| IL (1) | IL263264A (ja) |
| MX (1) | MX2018015045A (ja) |
| PH (1) | PH12018550197A1 (ja) |
| RU (1) | RU2018142897A (ja) |
| SG (1) | SG11201809886VA (ja) |
| WO (1) | WO2017213917A1 (ja) |
| ZA (1) | ZA201807412B (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10210240B2 (en) * | 2017-06-30 | 2019-02-19 | Capital One Services, Llc | Systems and methods for code parsing and lineage detection |
| US10705809B2 (en) * | 2017-09-08 | 2020-07-07 | Devfactory Innovations Fz-Llc | Pruning engine |
| US10691433B2 (en) | 2018-08-31 | 2020-06-23 | Databricks Inc. | Split front end for flexible back end cluster processing |
| US11106679B2 (en) | 2019-10-30 | 2021-08-31 | Ocient Holdings LLC | Enforcement of sets of query rules for access to data supplied by a plurality of data providers |
| US20200409927A1 (en) * | 2019-06-27 | 2020-12-31 | Yrc Worldwide Inc. | Cross-database platform synchronization of data and code |
| US11042369B1 (en) * | 2020-02-03 | 2021-06-22 | Architecture Technology Corporation | Systems and methods for modernizing and optimizing legacy source code |
| US11210288B2 (en) | 2020-05-12 | 2021-12-28 | Coupang Corp. | Systems and methods for reducing database query latency |
| US11782703B2 (en) * | 2021-05-17 | 2023-10-10 | Nec Corporation | Computer code refactoring |
| US20220414101A1 (en) * | 2021-06-24 | 2022-12-29 | Microsoft Technology Licensing, Llc | Shifting left database degradation detection |
| US12554717B2 (en) | 2022-07-01 | 2026-02-17 | Microsoft Technology Licensing, Llc | Dynamically substituting a modified query based on performance analysis |
| US12487817B2 (en) | 2022-12-20 | 2025-12-02 | Microsoft Technology Licensing, Llc | Software development artifact name generation |
| US12572836B2 (en) | 2023-02-20 | 2026-03-10 | Bank Of America Corporation | Intelligent provisioning of quantum programs to quantum hardware |
| US20240281687A1 (en) * | 2023-02-20 | 2024-08-22 | Bank Of America Corporation | Optimizing qubit consumption of quantum programs |
| US12579139B2 (en) * | 2023-11-16 | 2026-03-17 | Paypal, Inc. | Large language model-based data query optimization |
Family Cites Families (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6108648A (en) * | 1997-07-18 | 2000-08-22 | Informix Software, Inc. | Optimizer with neural network estimator |
| AU6504801A (en) * | 2000-05-26 | 2001-12-11 | Computer Ass Think Inc | System and method for automatically generating database queries |
| JP3956131B2 (ja) * | 2002-12-26 | 2007-08-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム変換装置、プログラム変換方法及びプログラム |
| US7634456B2 (en) | 2003-09-06 | 2009-12-15 | Oracle International Corporation | SQL structure analyzer |
| JP2007219598A (ja) * | 2006-02-14 | 2007-08-30 | Nippon Telegr & Teleph Corp <Ntt> | 多重化データベースシステム及びその同期化方法、データベースサーバ、並びに、データベースサーバプログラム |
| US20080065590A1 (en) | 2006-09-07 | 2008-03-13 | Microsoft Corporation | Lightweight query processing over in-memory data structures |
| US20090144229A1 (en) | 2007-11-30 | 2009-06-04 | Microsoft Corporation | Static query optimization for linq |
| US8713048B2 (en) | 2008-06-24 | 2014-04-29 | Microsoft Corporation | Query processing with specialized query operators |
| CN101763428A (zh) * | 2010-01-04 | 2010-06-30 | 山东浪潮齐鲁软件产业股份有限公司 | 一种SOA对web服务的注册存储管理应用系统 |
| US9665620B2 (en) * | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
| US8332388B2 (en) * | 2010-06-18 | 2012-12-11 | Microsoft Corporation | Transformation rule profiling for a query optimizer |
| US9177017B2 (en) | 2010-09-27 | 2015-11-03 | Microsoft Technology Licensing, Llc | Query constraint encoding with type-based state machine |
| US20120078878A1 (en) * | 2010-09-28 | 2012-03-29 | Microsoft Corporation | Optimized lazy query operators |
| US8914782B2 (en) | 2010-11-10 | 2014-12-16 | Microsoft Corporation | Optimization of declarative queries |
| KR101238381B1 (ko) * | 2011-06-07 | 2013-02-28 | 엔에이치엔(주) | 다중범위 스캔에서의 n 정렬 질의를 최적으로 처리하기 위한 방법 및 장치 |
| US8997070B2 (en) * | 2011-12-15 | 2015-03-31 | Sap Se | Extension mechanism for scripting language compiler |
| US20140082014A1 (en) | 2012-03-02 | 2014-03-20 | Logics Research Centre Sia | Abstract, structured data store querying technology |
| CN102982103A (zh) * | 2012-11-06 | 2013-03-20 | 东南大学 | 一种olap海量多维数据维存储方法 |
| US9514230B2 (en) * | 2013-07-30 | 2016-12-06 | Facebook, Inc. | Rewriting search queries on online social networks |
| CN103970870A (zh) * | 2014-05-12 | 2014-08-06 | 华为技术有限公司 | 数据库查询方法和服务器 |
| US11461319B2 (en) * | 2014-10-06 | 2022-10-04 | Business Objects Software, Ltd. | Dynamic database query efficiency improvement |
-
2016
- 2016-06-06 US US15/174,688 patent/US10558458B2/en active Active
-
2017
- 2017-05-31 JP JP2018563782A patent/JP6911059B2/ja not_active Expired - Fee Related
- 2017-05-31 AU AU2017277831A patent/AU2017277831B2/en not_active Ceased
- 2017-05-31 KR KR1020187035332A patent/KR20190015285A/ko not_active Withdrawn
- 2017-05-31 CA CA3023326A patent/CA3023326A1/en not_active Abandoned
- 2017-05-31 WO PCT/US2017/035085 patent/WO2017213917A1/en not_active Ceased
- 2017-05-31 SG SG11201809886VA patent/SG11201809886VA/en unknown
- 2017-05-31 CN CN201780035355.6A patent/CN109313547B/zh active Active
- 2017-05-31 BR BR112018074025-0A patent/BR112018074025A2/pt not_active IP Right Cessation
- 2017-05-31 MX MX2018015045A patent/MX2018015045A/es unknown
- 2017-05-31 EP EP17729659.7A patent/EP3465425A1/en not_active Withdrawn
- 2017-05-31 RU RU2018142897A patent/RU2018142897A/ru not_active Application Discontinuation
-
2018
- 2018-11-05 ZA ZA2018/07412A patent/ZA201807412B/en unknown
- 2018-11-12 PH PH12018550197A patent/PH12018550197A1/en unknown
- 2018-11-25 IL IL263264A patent/IL263264A/en unknown
- 2018-12-04 CL CL2018003468A patent/CL2018003468A1/es unknown
- 2018-12-05 CO CONC2018/0013186A patent/CO2018013186A2/es unknown
Also Published As
| Publication number | Publication date |
|---|---|
| CO2018013186A2 (es) | 2018-12-14 |
| KR20190015285A (ko) | 2019-02-13 |
| ZA201807412B (en) | 2020-01-29 |
| JP2019523942A (ja) | 2019-08-29 |
| US10558458B2 (en) | 2020-02-11 |
| SG11201809886VA (en) | 2018-12-28 |
| RU2018142897A (ru) | 2020-06-05 |
| US20170351512A1 (en) | 2017-12-07 |
| CN109313547A (zh) | 2019-02-05 |
| MX2018015045A (es) | 2019-03-06 |
| PH12018550197A1 (en) | 2019-09-16 |
| WO2017213917A1 (en) | 2017-12-14 |
| CL2018003468A1 (es) | 2019-03-15 |
| AU2017277831A1 (en) | 2018-11-22 |
| BR112018074025A2 (pt) | 2019-02-26 |
| AU2017277831B2 (en) | 2021-09-09 |
| EP3465425A1 (en) | 2019-04-10 |
| IL263264A (en) | 2018-12-31 |
| CA3023326A1 (en) | 2017-12-14 |
| CN109313547B (zh) | 2022-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6911059B2 (ja) | Cpu利用およびコードリファクタリングのためのクエリオプティマイザー | |
| CN111796831B (zh) | 一种多芯片兼容的编译方法和装置 | |
| US10942734B2 (en) | Software dependency shading | |
| US9430200B1 (en) | Cross-library framework architecture feature sets | |
| US11635949B2 (en) | Methods, systems, articles of manufacture and apparatus to identify code semantics | |
| US9081586B2 (en) | Systems and methods for customizing optimization/transformation/ processing strategies | |
| US11714613B2 (en) | Surfacing underutilized tool features | |
| CN110741354B (zh) | 呈现代码实体调用之间的差异 | |
| US9311077B2 (en) | Identification of code changes using language syntax and changeset data | |
| CN108139891A (zh) | 针对外部文件的缺失包括建议 | |
| US20140310688A1 (en) | Using stack data and source code to rank program changes | |
| WO2018161509A1 (zh) | 条件编译预处理方法、终端及存储介质 | |
| US12182551B2 (en) | Using a semantic tree of a compiler to execute a semantic code query against source code | |
| WO2021169227A1 (zh) | 一种代码处理方法、装置、设备及介质 | |
| US10839124B1 (en) | Interactive compilation of software to a hardware language to satisfy formal verification constraints | |
| US10949209B2 (en) | Techniques for scheduling instructions in compiling source code | |
| US8819626B2 (en) | Sharable development environment bookmarks for functional/data flow | |
| JP6651974B2 (ja) | 情報処理装置、コンパイル方法及びコンパイラプログラム | |
| He et al. | From bug reports to workarounds: The real-world impact of compiler bugs | |
| Sharma | Performance comparison of Java and C++ when sorting integers and writing/reading files. | |
| HK1262687A1 (en) | Query optimizer for cpu utilization and code refactoring | |
| HK1262687B (zh) | 用於cpu利用率和代码重构的查询优化器 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200528 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200528 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210416 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210608 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210707 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6911059 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |
