読者です 読者をやめる 読者になる 読者になる

ぱと隊長日誌

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

プログラミング

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 …

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.日本支社北川俊広,株式会社アシスト田…

「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ユーザーグループ | Doorkeeperスライド資料に無い説明を中心にまと…

第15回Solr勉強会 レポート

2014/12/08にグラントウキョウ サウスタワー(会場:株式会社リクルートテクノロジーズ 提供)にて開催された、「第15回Solr勉強会」レポートです。 第15回Solr勉強会 #SolrJP - 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さんのエントリ コードクローンと品質 - プログラマーの脳みそ にて、コードクローンと品質についての論文が引用されていました。この論文について、また少し違った視点から見てみようと思います。 信頼性と保守性はトレードオフなのか? …

コードクローンは信頼性を高めるか

[update] 2013/04/05 22:10頃、id:Nagiseさんのエントリへのリンクを追加しました。 はじめに ツッコミどころ満載の 緊急特集!みずほ証券-東証裁判の争点を洗い出す - [論点3]どんな開発手法を適用すべきか:ITpro ですが、なかでも 『コードクローンを含…

FacebookのGraph APIでニュースフィードが取得できない問題について

2013/04/18 に更新しました。この(Facebook側の)問題は解決しています。 問題 Graph APIのme/homeでニュースフィードを取得しようとすると、HTTP レスポンスコードの500が戻ってくる。全てのユーザで発生するわけではなさそう。2013/04/03ぐらいから発生して…