PREPARATION
受験対策

Silverの例題解説
「S3.1 SQL コマンド(パーティション)」

今回は、Silverの「S3 開発/SQL - S3.1 SQL コマンド(パーティション)」からの出題です。

例題

3.114

パーティションテーブル(PostgreSQLバージョン10で導入された宣言的パーティショニング)およびそのパーティションを作成する手順として正しいものを2つ選びなさい。

  1. CREATE PARTITIONED TABLEコマンドを使用してパーティションテーブルを作成する。
  2. CREATE TABLEコマンドにPARTITIONED BYオプションを指定することでパーティションテーブルを作成する。

  3. CREATE PARTITIONコマンドでパーティションを作成する。
  4. CREATE TABLE PARTITIONコマンドでパーティションを作成する。
  5. CREATE TABLEコマンドにPARTITION OFオプションを指定することでパーティションを作成する。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2020年4月23日

解答と解説

パーティショニングは大きなテーブルを多数の小さな部品に分割する手法で、条件によっては検索や更新のパフォーマンスを大幅に向上させることができます。分割された大きなテーブルをパーティションテーブル、個々の部品に相当する部分をパーティションと呼びます。一般的に、各パーティションは親となるパーティションテーブルと同じ構造(列定義)を持ち、特定の列(パーティションキー)の値によって、各行がどのパーティションに入るかが決まります。
パーティションテーブルの作成は通常のテーブルの作成とほぼ同じCREATE TABLEコマンドで行いますが、そのときにPARTITIONED BYオプションでパーティションキーがどの列であるのかを指定すると同時に、そのテーブルがパーティションテーブルであることを指定します。
パーティションテーブルにINSERTを実行しても、そのテーブル自体には行は格納されず、パーティションキーの値によって、各パーティションへのINSERTに振り分けられます。とは言っても、各パーティションは自動的に作成されるわけではなく、事前に作成しておく必要があります。
パーティションの作成もCREATE TABLEコマンドで行いますが、そのときにPARTITION OFオプションで、その親となるパーティションテーブルを指定し、さらにFOR VALUES句でそのパーティションに対応するパーティションキーの値を指定します。テーブル構造自体はパーティションテーブルと同じなので、CREATE TABLEでテーブル名に続く列名とデータ型を指定する句は不要です。


したがって正解はBとEです。


パーティショニングの詳しい手順についてはマニュアルの以下のページを参照してください。
https://www.postgresql.jp/document/11/html/ddl-partitioning.html
https://www.postgresql.jp/document/11/html/sql-createtable.html

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。