JP5558514B2 - 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置 - Google Patents
多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置 Download PDFInfo
- Publication number
- JP5558514B2 JP5558514B2 JP2012092668A JP2012092668A JP5558514B2 JP 5558514 B2 JP5558514 B2 JP 5558514B2 JP 2012092668 A JP2012092668 A JP 2012092668A JP 2012092668 A JP2012092668 A JP 2012092668A JP 5558514 B2 JP5558514 B2 JP 5558514B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- query
- scan
- data
- record
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 52
- 238000012545 processing Methods 0.000 title claims description 39
- 239000000872 buffer Substances 0.000 claims description 237
- 238000003672 processing method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 25
- 239000000284 extract Substances 0.000 claims description 5
- 238000013075 data extraction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002354 daily effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F16/24547—Optimisations to support specific applications; Extensibility of optimisers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図1は、本発明の一実施形態によるDBMSが、多重範囲スキャンでのNソートクエリの処理時に、インデックス(index)を用いてスキャンする範囲を示す図面である。
FROM posts
WHERE userid IN(friends_list)AND ts<sysdate()
ORDER BY ts DESC
LIMIT N;
(ここで、friends_listは所定ユーザの友達のユーザIDリストのみを含み、所定ユーザを含んで友達のユーザIDリストを含む。これは、該当クエリを実行する特定サービスまたはシステムでどのようなユーザの文章を集めるかによって変わる。また、Nは抽出する文章の個数を意味する。)
図2は、本発明の一実施形態による多重範囲スキャンでのNソートクエリを処理するクエリ処理装置を示す構成図である。
[多重範囲スキャンでNソートクエリの処理]
次に、図3、図4及び図5を参照して、本発明の好ましい実施形態により、スキャン部122で実行される多重範囲スキャンでのNソートクエリの処理方法について詳細に説明する。
図4及び図5は本発明の第2実施形態によるスキャン部122が多重範囲スキャンでのNソートクエリを実行する順序を示したフローチャートである。
本発明の第1実施形態及び第2実施形態により、多重範囲スキャンで最上位のNソートクエリを実行する場合、従来技術に比べ得られる速度上の効果を、以下で計算する時間コストにより確認する。
N:検索しようとするレコードの個数
Us:特定ユーザの友達の数
Kt:該当インデックスで全体キーの数(該当テーブルで全体レコードの数と同一)
Ku:該当インデックスでユーザ毎の平均キーの数(該当テーブルでユーザ毎の平均レコードの数と同一)
Ks:本発明の第1実施形態において、ユーザ毎のインデックスを用いてスキャンするようになる平均キーの数
get_next_row:1
時間コスト(従来技術)=スキャンコスト+ソートコスト
=(Us×(log2(Kt)+Ku))+((Us×Ku)×log2(Us×Ku))
=Us×(log2(Kt)+Ku+Ku×log2(Us×Ku))
=Us×(log2(Kt)+Ku×(1+log2(Us×Ku)))
時間コスト(第1実施形態)=Us×(log2(Kt)+Ks+Ks×log2(N))
=Us×(log2(Kt)+Ks×(1+log2(N)))
時間コスト(第2実施形態)=スキャンしながらスキャン情報をスキャンバッファに格納するコスト+ローバッファに最終レコードを格納するコスト
=(Us×(log2(Kt)+log2(N)))+(N×(log2(N)+2))
Us:100,000
Kt:100,000,000
Ku:1,000
Ks:5
Claims (20)
- クエリに含まれた抽出レコード数に基づいてバッファを割り当て、
前記クエリに含まれた第1リストのうち第1属性に係わる第1データを抽出して前記バッファに記憶し、
前記クエリに含まれた前記第1リストのうち抽出されていない前記第1属性に係わる第2データを抽出し、
前記バッファに記憶された前記第1データ及び前記第2データを比較することにより、前記クエリを満たすように前記バッファを更新し、
前記クエリは、前記第1属性及び第2属性に基づいてソートされた一つ以上の前記レコードに対する多重範囲スキャンでのNソートクエリであることを特徴とするクエリ処理方法。 - 前記バッファに記憶することは、
前記第1属性が同一の前記レコードを前記抽出レコード数及び前記第1属性に係わる全ての前記レコードの個数のうち小さい数だけ抽出し、
抽出された前記レコードを前記第1データとして前記バッファに記憶すること特徴とする請求項1に記載のクエリ処理方法。 - 前記第2データは、抽出された前記第1データが有する前記第1属性とは異なる前記第1属性を有するレコードであることを特徴とする請求項1または2に記載のクエリ処理方法。
- 前記バッファを更新することは、
前記第2データを前記バッファに記憶されたデータと比較して第1検索条件を満たすかを確認し、
前記第2データが前記第1検索条件を満たす場合、前記第2データが前記バッファに記憶するように前記バッファを更新して、前記更新されたバッファは、前記クエリを満たすことを特徴とする請求項1乃至3の何れか一つに記載のクエリ処理方法。 - 前記第1検索条件は、前記第2データの前記第2属性が前記バッファに記憶されたデータの第2属性のうち少なくとも何れか一つに先立つ検索条件であることを特徴とする請求項4に記載のクエリ処理方法。
- 前記第2データを前記バッファに記憶するように前記バッファを更新することは、
前記バッファがフル状態である場合、前記バッファに記憶された前記第2データのうち前記第2属性が最も古いレコードを前記バッファから削除し、
前記第2データを含んで前記バッファ内に記憶されたデータが、前記第2属性が最新である順にソートされるように、前記第2データを前記バッファの第1位置に挿入すること特徴とする請求項5に記載のクエリ処理方法。 - 前記第2データが前記バッファに記憶されたデータと比較して前記第1検索条件を満たすか、または前記第2データが存在するまで、前記第1属性が同一の前記第2データを順次的に一つずつ抽出して前記バッファを更新することを繰り返すことを特徴とする請求項4から6の何れか一つに記載のクエリ処理方法。
- 前記クエリに含まれた第1リストに残っている全ての前記第1属性に対して、前記第2データを抽出すること及びバッファを更新することを繰り返すことを特徴とする請求項7に記載のクエリ処理方法。
- 前記バッファを割り当てることは、前記抽出レコード数に基づいて第2バッファをさらに割り当てて、前記バッファは、前記レコードを指し示すスキャン情報を記憶するスキャンバッファであり、前記第2バッファは、前記レコードを記憶するローバッファであることを特徴とする請求項1乃至8の何れか一つに記載のクエリ処理方法。
- 前記バッファを更新することは、
前記第2データであるスキャン情報が指し示すレコードと、前記バッファに記憶されたデータであるスキャン情報が指し示すレコードとを比較して第2検索条件を満たすかを確認し、前記第2検索条件を満たす場合、前記第2データが前記バッファに記憶されるように前記バッファを更新し、前記更新されたバッファは前記クエリを満たすことを特徴とする請求項9に記載のクエリ処理方法。 - 前記第2検索条件は、前記第2データであるスキャン情報が指し示すレコードの前記第2属性が前記バッファに記憶されたデータであるスキャン情報が指し示すレコードの前記第2属性のうち少なくとも何れか一つに先立つ検索条件であることを特徴とする請求項10に記載のクエリ処理方法。
- 前記第2データが前記バッファに記憶されるように前記バッファを更新することは、前記バッファがフル状態である場合、前記バッファに記憶されたデータであるスキャン情報が指し示すレコードのうち第2属性が最も古いレコードを指し示すスキャン情報を前記バッファから削除し、
前記第2データを含んで前記バッファ内に記憶されたデータが指し示すレコードの第2属性が最新である順にソートされるように、前記第2データを前記バッファの第2位置に挿入することを特徴とする請求項11に記載のクエリ処理方法。 - 前記第1データは、前記第1属性を有する最初のレコードを指し示すスキャン情報であることを特徴とする請求項9から12の何れか一つに記載のクエリ処理方法。
- 前記クエリに含まれた第1リストに残っている全ての第1属性に対して、前記第2データを抽出すること及びバッファを更新することを繰り返すことを特徴とする請求項12または13に記載のクエリ処理方法。
- 前記第2データを抽出すること及びバッファを更新することを繰り返して完了した後、前記スキャン部により、前記バッファのソートされたスキャン情報のうち一番目のスキャン情報が指し示すレコードを前記第2バッファの空いている位置のうち先頭に記憶し、
前記スキャン部により、前記スキャン情報を、前記スキャン情報が指し示すレコードが有する第1属性と同一で前記第2属性が最新である順にソートされたレコードのうち次のレコードを指し示すように移動し、
前記スキャン部により、移動された前記スキャン情報を含んで前記バッファに記憶されたデータであるスキャン情報が指し示すレコードの第2属性が最新である順に前記バッファをソートすることを特徴とする請求項14に記載のクエリ処理方法。 - 前記第2データを抽出すること及びバッファを更新することを繰り返して完了した後に行う前記記憶は、移動すること及びソートすることが、前記第2バッファがフル状態になるまで繰り返されることを特徴とする請求項15に記載のクエリ処理方法。
- 前記クエリが、前記第1属性及び前記第2属性に基づいてソートされた一つ以上のレコードに対する多重範囲スキャンでのNソートクエリであるか否かを判断することをさらに含み、前記判断結果がNソートクエリである場合にのみ、前記バッファを割り当てること、前記バッファを記憶すること、前記第2データを抽出すること及び前記バッファを更新することが実行されることを特徴とする請求項1から16の何れか一つに記載のクエリ処理方法。
- 前記第1属性はユーザIDであり、前記第2属性はタイムスタンプであることを特徴とする請求項1から17の何れか一つに記載のクエリ処理方法。
- 請求項1から18の何れか一つに記載の方法の各段階をコンピュータ上で行うためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
- クエリに含まれた抽出レコード数に基づいてバッファを割り当てるバッファ割り当て部と、
前記クエリに含まれた第1リストのうち第1属性に係わる第1データを抽出して前記バッファに記憶し、前記クエリに含まれた第1リストのうち抽出されていない第1属性に係わる第2データを抽出し、前記バッファに記憶されたデータ及び前記第2データを比較することにより、前記クエリを満たすように前記バッファを更新するスキャン部と、を含み、前記クエリは、第1属性及び第2属性に基づいてソートされた一つ以上のレコードに対する多重範囲スキャンでのNソートクエリであることを特徴とするクエリ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2011-0054384 | 2011-06-07 | ||
KR1020110054384A KR101238381B1 (ko) | 2011-06-07 | 2011-06-07 | 다중범위 스캔에서의 n 정렬 질의를 최적으로 처리하기 위한 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012256318A JP2012256318A (ja) | 2012-12-27 |
JP5558514B2 true JP5558514B2 (ja) | 2014-07-23 |
Family
ID=47294039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012092668A Active JP5558514B2 (ja) | 2011-06-07 | 2012-04-16 | 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8990226B2 (ja) |
JP (1) | JP5558514B2 (ja) |
KR (1) | KR101238381B1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140237003A1 (en) * | 2013-02-21 | 2014-08-21 | Bank Of America Corporation | Data Communication and Analytics Platform |
CN103559307A (zh) * | 2013-11-18 | 2014-02-05 | 中国农业银行股份有限公司 | 一种查询的缓存方法及装置 |
US10108649B2 (en) | 2014-02-25 | 2018-10-23 | Internatonal Business Machines Corporation | Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps |
KR101678680B1 (ko) | 2014-05-08 | 2016-11-22 | 주식회사 알티베이스 | 하이브리드 메모리 테이블 클러스터 |
US9600517B2 (en) * | 2014-05-29 | 2017-03-21 | Sybase, Inc. | Convert command into a BULK load operation |
US9665612B2 (en) | 2014-05-29 | 2017-05-30 | Sybase, Inc. | Run-time decision of bulk insert for massive data loading |
CN105138928B (zh) * | 2015-08-14 | 2018-06-26 | 重庆邮电大学 | 一种基于缓存机制的社交网络隐私保护方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63301358A (ja) * | 1987-06-01 | 1988-12-08 | Hitachi Ltd | 電子ファイリングシステムの入出力方式 |
JPH08255170A (ja) * | 1995-03-15 | 1996-10-01 | Oki Electric Ind Co Ltd | ソート付き検索処理装置 |
KR100396826B1 (ko) | 2000-05-31 | 2003-09-02 | 주식회사 지식정보 | 정보검색에서 질의어 처리를 위한 단어 클러스터 관리장치 및 그 방법 |
KR100449497B1 (ko) * | 2000-12-21 | 2004-09-21 | 주식회사 매직아이 | 실시간 정보 제공 장치 및 그 처리 방법 |
JP2003099304A (ja) * | 2001-09-20 | 2003-04-04 | Fujitsu Ltd | 複数の場所に登録された情報を管理するシステムおよび方法 |
KR100478857B1 (ko) * | 2002-02-06 | 2005-03-24 | (주) 세이프아이 | 온라인을 이용한 자동업데이트 시스템 |
US20050076018A1 (en) * | 2003-10-07 | 2005-04-07 | Neidecker-Lutz Burkhard K. | Sorting result buffer |
US7343367B2 (en) * | 2005-05-12 | 2008-03-11 | International Business Machines Corporation | Optimizing a database query that returns a predetermined number of rows using a generated optimized access plan |
JP5377897B2 (ja) * | 2007-10-29 | 2013-12-25 | 株式会社日立製作所 | ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム |
KR100921158B1 (ko) * | 2007-12-21 | 2009-10-12 | 엔에이치엔(주) | 데이터베이스 관리 방법 및 시스템 |
KR101160388B1 (ko) * | 2008-02-05 | 2012-06-26 | 엔에이치엔비즈니스플랫폼 주식회사 | 데이터베이스 관리 방법 및 시스템 |
JP2009239855A (ja) * | 2008-03-28 | 2009-10-15 | Mitsubishi Electric Corp | メタデータ管理装置 |
US8645936B2 (en) * | 2009-09-30 | 2014-02-04 | Zynga Inc. | Apparatuses, methods and systems for an a API call abstractor |
-
2011
- 2011-06-07 KR KR1020110054384A patent/KR101238381B1/ko active IP Right Grant
-
2012
- 2012-04-16 JP JP2012092668A patent/JP5558514B2/ja active Active
- 2012-05-17 US US13/474,382 patent/US8990226B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR20120135588A (ko) | 2012-12-17 |
JP2012256318A (ja) | 2012-12-27 |
KR101238381B1 (ko) | 2013-02-28 |
US8990226B2 (en) | 2015-03-24 |
US20120317128A1 (en) | 2012-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5558514B2 (ja) | 多重範囲スキャンでのnソートクエリを最適に処理する方法及び装置 | |
CN106227800B (zh) | 一种高度关联大数据的存储方法及管理系统 | |
CN1552032B (zh) | 数据库 | |
CN109241274B (zh) | 文本聚类方法及装置 | |
US9195738B2 (en) | Tokenization platform | |
JP5550669B2 (ja) | 検索装置、検索方法およびプログラム | |
JP5199317B2 (ja) | データベース処理方法、データベース処理システム及びデータベースサーバ | |
TW201837720A (zh) | 用於多串流儲存裝置之串流選擇 | |
CN110291518A (zh) | 合并树无用单元指标 | |
KR100930455B1 (ko) | 쿼리별 검색 컬렉션 생성 방법 및 시스템 | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
CN102750379B (zh) | 一种基于过滤型的字符串快速匹配方法 | |
WO2013030595A1 (en) | Identifying data items | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
CN111104511A (zh) | 一种提取热点话题的方法、装置及存储介质 | |
JP5959592B2 (ja) | データベース管理方法、プログラム及び該管理システム、並びにデータベースのツリー構造 | |
US20130254190A1 (en) | Search device, search method, and computer program product | |
US9692847B2 (en) | Content distribution method and content distribution server | |
CN112925954A (zh) | 用于在图数据库中查询数据的方法和装置 | |
KR101358793B1 (ko) | 인덱스 파일 생성방법, 사전 인덱스 파일을 이용한 데이터 검색 방법 및 데이터 관리 시스템, 기록매체 | |
CN113495945A (zh) | 一种文本搜索方法、装置及存储介质 | |
CN107291875B (zh) | 一种基于元数据图的元数据组织管理方法和系统 | |
CN107169065B (zh) | 一种特定内容的去除方法和装置 | |
CN103838760B (zh) | 一种查询好友信息的方法和系统 | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131003 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131022 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140122 |
|
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: 20140520 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140604 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5558514 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |