ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

PostgreSQLマニュアルの「リピータブルリード分離レベル」における「制御レコード」とはなにか?

PostgreSQL(9.1以降)マニュアルの「13.2.2. リピータブルリード分離レベル」に以下の記述があります。 リピータブルリードモードでは、全てのトランザクションがデータベースの一貫した不変のビューの状態を参照することが保証されます。 しかし、このビュ…

NTTDATATC2017「本当は恐ろしい分散システムの話」聴講メモ

前書き NTTデータ テクノロジーカンファレンス 2017 (NTTデータ テクノロジーカンファレンス2017 デジタルトランスフォーメーション成功のカギ~ Hadoop, Spark, ブロックチェーン | NTTデータのHadoopソリューション) 【テクノロジー】本当は恐ろしい分散シ…

急がば回れ、選ぶなら近道 TX記事 読解メモ

目次 目次 はじめに 前提知識 トランザクションの基礎知識 数学記号 iff Serializabilityの選択 本エントリでの表記 Welcome back to the TRANSACTION! A Critique of ANSI SQL Isolation Levels再読 A critique of ansi sql isolation levels 解説公開用 (…

DBTS2017「次世代DB / 分散OLTP(MVCC系)を可能な限り全力で解説」聴講メモ

前書き db tech showcase Tokyo 2017 (db tech showcase Tokyo 2017 | db tech showcase) C31:次世代分散OLTP 次世代DB / 分散OLTP(MVCC系)を可能な限り全力で解説 の聴講メモです。スピーカーはノーチラステクノロジーズの神林さん(@okachimachiorz1)です…

はてなブログ記事にTwitterアカウントのリンクを埋め込む

はてなブログの記事内にTwitterアカウントのリンクを埋め込みたい場合があります。例えば、@pato_taityo←こんな感じに。Twitterアカウントのリンク埋め込みにアンカーリンク(a hrefタグ)を使う方法を紹介している記事がありますが、もっと簡単な記法があり…

DBTS2017 これからの”本命技術”はこう見つける! まとめ

前書き db tech showcase Tokyo 2017 (db tech showcase Tokyo 2017 | db tech showcase) A12 : KEYNOTE 2 これからの”本命技術”はこう見つける!~ポスト・リレーショナルデータベース時代を読み解くコツ~ のまとめ記事です。本セッションはウルシステムズ…

PostgreSQLの実行計画を読み解くための参考資料集

はじめに PostgreSQLは商用DBに比べて書籍が少なく、まとまった情報が入手しにくいです。また、有志の方がPostgreSQLに関する資料を公開していますが、散在しており、せっかくの有益な情報にアクセスしにくい状況にあります。そこで、本エントリではPostgreS…

男性が婚活する際の心構え・アドバイス

はじめに もう2年以上前になりますが、婚活をしていた時期がありました。離婚歴あり・別居の子供ありでのスタートでした。婚活で知り合った方とお付き合いしていた期間も含めれば、2年半以上活動していたことになります。イベント参加回数は50回以上、紹介な…

PostgreSQLのオブジェクト識別子(OID)とキャスト

目的 オブジェクト識別子(以下、OID)とキャストについては、すでに詳細な解説記事があります。 オブジェクト識別子を活用する | Let's Postgres 本エントリではこの解説記事をベースにしつつ、理解し辛い点を補足します。本エントリの目次を示します。 目的 …

pg_rman の「最新の状態までリカバリ」の処理内容

目的 pg_rman で復元ポイントを指定せずにリストアを実行し、PostgreSQLを起動すると、可能な限り障害直前の状態までリカバリされます。pg_rman のマニュアルで「リストア・オプション」の節に以下の説明があります。 --recovery-target-timeline TIMELINE …

pg_rman によるバックアップで、バックアップ対象ファイルのタイムスタンプがシステム時刻より進んでいるとエラーとなる

事象 pg_rman によるバックアップ中に、以下のエラーが表示されて、処理が中断される。 $ pg_rman backup --backup-mode=full --with-serverlog --progress INFO: copying database files Processed 1183 of 1183 files, skipped 0 INFO: copying archived W…

PostgreSQL実行計画のハッシュノードに出力されるバケット数とバッチ数の解説

目的 PostgreSQLの実行計画のハッシュノード(Hash)に出力されるバケット数(Buckets)とバッチ数(Batches)について解説を行います。また、バッチ数とパフォーマンスの関係についても触れます。このテーマについて Pat Shaughnessy さんが英語の解説記事を公開…

JPEGファイルを Windows 10 のエクスプローラで開けなくなった事象と解決までの一例

事象 JPEGの画像ファイルを Windows 10 のエクスプローラからダブルクリックで開くことができなくなった。通常であれば「フォト」アプリが起動するところ、ダイアログで「レジストリに対する値が無効です」と表示された。なお、同じマシンでも管理者ユーザで…

「データベースパフォーマンスアップの教科書」の「猶予ハッシュジョイン」説明補足

はじめに 「データベースパフォーマンスアップの教科書」(以下、書籍)はデータベースの内部処理を解説した数少ない本です。その解説にはややわかりづらい点があります。また、その中で取り上げられている「猶予ハッシュジョイン」はネットで情報を探しにく…

テーブル結合における外部表・内部表の選択

目的 テーブル結合の外部表(駆動表)はデータセットの小さい方を選ぶ可能性が高いです。データセットの小さい方を選ぶことでI/Oコストの観点から有利になることを示します。また、オプティマイザの外部表・内部表選択基準の例を挙げます。 疑問 表Rと表Sの…

PostgreSQLの検査制約におけるNULLの扱い

はじめに PostgreSQLを基準とした資格試験の問題集「徹底攻略 OSS-DB Silver問題集[OSDBS-01]対応」にて、以下の検査制約を設定したテーブルに対して、値にNULLを含んだINSERTが成功するか?という問題がありました。 CREATE TABLE points ( col1 INTEGER …

OSS-DB Silver [OSDBS-01] 受験対策教材集

はじめに OSS-DB Silver [OSDBS-01] 受験対策の教材はあまり多くありません。ですが、よく探してみると、自習で役立つ資料が公開されていたりします。 このエントリでは私が受験対策のために実際に使い、参考になったものをご紹介いたします。 テキスト OSS…

OSS-DB silver問題集 [OSDBS-01]対応 補足

OSS-DB Silver [OSDBS-01] 受験対策としてインプレスジャパンの問題集を利用されている方は多いかと思います。徹底攻略 OSS-DB Silver問題集[OSDBS-01]対応 (ITプロ/ITエンジニアのための徹底攻略)作者: SRA OSS Inc.日本支社北川俊広,株式会社アシスト田…

PostgreSQLのデータベースクラスタ及びテーブルスペースの関係

はじめに PostgreSQLの「データベースクラスタ」及び「テーブルスペース(テーブル空間)」の関係を説明します。 前提 このエントリではPostgreSQL 9.6のドキュメントをベースに解説します。 データベースクラスタ PostgreSQLにおける「データベースクラスタ…

「SQLパフォーマンス詳解」(原文タイトル:SQL Performance Explained)の紹介と購入時のポイント

本の紹介 「SQLパフォーマンス詳解」(原文タイトル:SQL Performance Explained)はデータベースのBツリーインデックスについて解説しています。インデックスの仕組みから実務に活かせるテクニックまで幅広く取り上げられています。 データベースのインデック…

PDCA(Plan, Do, Check, Action)サイクルのActionとは何か?

疑問 PDCA(Plan, Do, Check, Action)サイクルについて、これまで何度も講義やセミナーで説明を受けてきましたが、どうしてもDo(実行)とAction(改善)の違いを理解できませんでした。 また、PDCAは「サイクル」であり、P→D→C→A→P→…のように繰り返すと説明…

SQLのWHERE句で用いられる相関サブクエリを理解する

はじめに 相関サブクエリもしくはEXISTS述語の使い方として、以下のようなSQLがよく取り上げられます。 SELECT * FROM item i WHERE EXISTS (SELECT * FROM stock s WHERE i.id = s.id); これに対して以下のデータが与えられたとします。◆itemテーブル id na…

SQLのWHERE句の処理を理解する

はじめに SQLのWHERE句は「集合から条件に合致する行を選択する」処理です。 ですが、SQLの様々な書き方を学ぶうちにWHERE句の役割について混乱してしまうことがあるかもしれません。本エントリではこの混乱の解消を目標に説明します。 SQLの実行順序 SQLの…

住宅ローン2年目以降の住宅ローン控除申告(連帯債務や借換えの場合)

はじめに 昨年の年末調整で住宅ローン2年目の住宅ローン控除申告を行ったのですが、「連帯債務かつ借換え」の記入方法が分からず(どちらか一方であれば記入例があるのですが)、かなり苦労しました。 また、連帯債務の「共有持分」と「連帯債務に係るあなた…

Windows 10 ProでウィルスバスターとHyper-Vをインストール後、起動時にブルースクリーン(APC INDEX MISMATCH)が表示される場合の復旧手順

事象 Windows 10 Pro 64bit版 で起動時にブルースクリーン(BSoD)が表示される。 表示される停止コードは"APC INDEX MISMATCH"。 何度再起動しても再発する。 再現環境 構成の異なる2台のマシンで再現した。再現した環境の共通項は以下の通り。 真因は不明だ…

レビューでほめて後輩を育てる

はじめに 仕事では様々なレビューを行います。対象はドキュメントであったり、システムであればコードであったりします。そうしたレビューにおいて良い点を認めることで何が起きるか。後輩とのレビュー経験をもとにまとめました。 レビューの失敗 まず、自分…

ソフトウェアの運用保守フェーズでまず用意すべきドキュメントリスト

はじめに ソフトウェアの開発は厳しい工数管理と納期に迫られます。その中でドキュメントはしばしば削減対象となります。ただ、ドキュメントを削減したツケは運用保守フェーズで払うことになります。コードを見ればわかる?サーバ構成なんて調べればわかる?…

Oracle JDBC ドライバのバージョンを管理する

はじめに Oracle JDBCドライバのバージョン管理についてまとめます。 できる限り公式の情報に基づいていますが、推測に頼らざるを得なかった箇所はその旨記載しています。 はじめに 手元にあるOracle JDBC ドライバのバージョンはどうやって調べるのか? OTN…

リーダーシップの抵抗勢力はどこにいるのか?

新しいことを始めるとき、必ず抵抗勢力がいます。明確に反対しないまでも、協力に消極的な場合もあります。そんな抵抗勢力に対し、どう向き合うべきでしょうか? 同じ職場で働くコンサルタントに相談してみたところ、相手にとってのメリットをアピールして協…

転職面接の面接官が応募者に語ってほしいこと

最近、別々の方から転職面接の面接官として同じ悩みを聞きました。そして、それは私も面接を担当する時に感じていたことでした。悩みとは応募者が教科書通りの回答しかしてくれない、ということです。例えば、プロジェクトマネージャー候補として考えている…