ぱと隊長日誌

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

プログラミング

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

目次 目次 はじめに 前提知識 トランザクションの基礎知識 数学記号 iff Serializabilityの選択 predicate install 参考資料 本エントリでの表記 Welcome back to the TRANSACTION! A Critique of ANSI SQL Isolation Levels再読 A critique of ansi sql iso…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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の…

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

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

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

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

要求開発アライアンス 3月定例会「アジャイル時代のモデリング」レポート

2015/03/18に開催された、要求開発アライアンス 3月定例会「アジャイル時代のモデリング」レポートです。 (3/18 19:00~)要求開発アライアンス 3月定例会「アジャイル時代のモデリング」 - 要求開発アライアンス | Doorkeeperスライド資料に無い説明を中…

「Regional Scrum Gathering Tokyo 2015 Day1」レポート

2015/02/28に開催された、「Regional Scrum Gathering Tokyo 2015 Day1」レポートです。 Regional Scrum Gathering Tokyo 2015: Scheduleスライド資料に無い説明を中心にまとめています。ぜひスライド資料を併せてご覧ください。【参考】としている個所は私…

JJUGナイトセミナー「機械学習・自然言語処理特集!」レポート

2014/12/17に開催された、JJUGナイトセミナー「機械学習・自然言語処理特集!」レポートです。 【東京】JJUG ナイト・セミナー「機械学習・自然言語処理特集!」12/17(水)開催 - 日本Javaユーザーグループ/Japan Java User Group | Doorkeeperスライド資料…

第15回Solr勉強会 レポート

2014/12/08にグラントウキョウ サウスタワー(会場:株式会社リクルートテクノロジーズ 提供)にて開催された、「第15回Solr勉強会」レポートです。 第15回Solr勉強会 #SolrJP - Lucene/Solr勉強会 #SolrJP | Doorkeeperスライド資料に無い説明を中心にまと…

Oracleの日付書式"RR"と"YY"は4桁表記にも適用できる

Oracle Database の日時書式モデルは以下のように定義されている。 要素 説明 RR 2桁のみを使用して、21世紀に20世紀の日付を格納できます。 YY 年の2桁。 参考:書式モデル実際には日付書式に"RR"と"YY"を指定しても、年に4桁を使用できる。 SQL> select TO…

Oracle Database のTO_DATEファンクションでORA-01861が発生する

事象 Oracle Database にJDBC経由で接続し、TO_DATEファンクションを日付フォーマット指定無しに実行すると、環境によってORA-01861が発生する場合がある。 例えば、Windows上では問題ないのに、Linux上で同じJavaプログラムを動かすとエラーになることがあ…

Facebook Graph API 2.0 アップグレードメモ

はじめに 2014/4/30にFacebook Graph APIがv2.0にバージョンアップしました。以前のAPIはv1.0として扱われています。 公式のアップグレードガイド(Facebook Platform Upgrade Guide)(英語)が公開されていますが、日本語で要約して下さったページがあるの…

Facebook APIのバグレポートの書き方

はじめに Facebook API(と総称していますが、Graph APIやFQL等)を利用していると、おかしな挙動に悩まされることがあります。時には明らかにバグとしか思えないことも。そんな時はバグレポートを送ってみましょう。 英語の壁 バグレポートは英語でやり取り…

FacebookバグレポートのStatusとPriorityの種別

以下の内容は調査時点のものです。表記などは時折変更されることもあるようなので、ご留意ください。 Status 公開 レポート直後のステータスです。 Need More Info Facebookの担当者が追加情報を必要としたときにコメントと共に設定されます。 Reopened "Nee…

iOS Developer Programの個人と企業(法人)の扱いの違いについて

はじめに iOS Developer Programでの扱いが個人と企業(法人)でどう違うのかをまとめておきます。 Apple IDの準備 iOS Developer Programへの登録には最低一つのApple IDが必要になります。iOS Developer Programに個人・企業のいずれで登録する場合でも、A…

Facebookのバグレポートは未解決でも期限切れで非公開にされることがある

非公開にされる場合 タイトルの通り、Facebookのバグレポートは未解決でも非公開にされてしまう場合があります。その条件をこれまでの経験から推測すると、 Status:Triaged Priority:Low Status:Triagedから1ヶ月経過 をすべて満たしたときのようです。 非公…

MySQL(InnoDB)はフィールド値の一部で主キーを構成できる&そのメリット

MySQLのインデックスを作成する際、対象となるフィールド値の一部だけを使って構成できることを知らなかった。サイズが大きいフィールドにprimary keyをはる必要がある場合に助かる。 http://msykt.hatenablog.com/entry/2013/07/30/023704 このようにフィー…

第6回テックヒルズ『Let’ study Jenkins~さまざまなケーススタディ』レポート

はじめに 第6回テックヒルズ『Let’ study Jenkins~さまざまなケーススタディ』のレポートを公開します。今回のレポートの注意点。 スライド資料に無い説明を中心にまとめているため、発表によってはレポートが物足りないと思います。ぜひスライド資料を併せ…

コメント返信のGraph APIを使う

はじめに Facebookのコメントに返信機能が追加され、「July 2013 Breaking Changes」を有効にするとAPIからも使えるようになります。 日本語で書かれた詳しい解説記事がありますので、ぜひご覧ください。 2013/07/10 の仕様変更 : Facebook開発者向けドキュ…

Graph API Explorerでアプリ設定を反映したレスポンスを取得する

こんな時に Graph API Explorerで実行したAPIのレスポンスがアプリで取得した場合と違う気がする Breaking Changesの影響を調べたい アプリ設定を反映させたAPIのレスポンスが知りたい 実行方法 まず、テストしたいアプリの開発者として登録されていることを…

Facebookの"user"テーブルの"can_message"カラムが常にtrueを返す

概要 FacebookのFQLで"user"テーブルの"can_message"カラムを取得すると常にtrueが返ります。 現象 Facebookのメッセージフィルタ設定には ・基本フィルタ ・絞り込み の2種類があります。このいずれを選んだ状態でも select can_message from user where ui…

信頼性と保守性はトレードオフか

はじめに id:Nagiseさんのエントリ コードクローンと品質 - プログラマーの脳みそ にて、コードクローンと品質についての論文が引用されていました。この論文について、また少し違った視点から見てみようと思います。 信頼性と保守性はトレードオフなのか? …