キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
PostgreSQLでのクラスタ(2019年版)
0
    PostgreSQLでのクラスタ(2019年版)

    本エントリはPostgreSQL Advent Calendar 2019の四日目となります。

    MySQLでのクラスタといえば、MySQL Clusterが長らく(10年以上)定番となっています。
    最近(MySQL 5.7以降) MySQL InnoDB Clusterという構成も出て、盤石の体制となっています。

    翻って、PostgreSQLではどうでしょうか? 以下のWikiと、pdfでどのようなものがあるか、の概略が確認できます。

    Clustering

    PostgreSQLの大規模運用を可能にするクラスタ技術のご紹介

    本エントリでは現在(でも)「ホット」なPostgreSQL Clustering 技術を簡単にご紹介しましょう。

    (1) Pgpool-II
    (2) BDR (Bi-Directional Replication for PostgreSQL)
    (3) Citus

    (1) Pgpool-II
     pgpoolはその名のとおり、コネクションプーリングを実現するミドルウエアとして、みなさんご存じの石井さんにより2003年ころ(PostgreSQLでいうと7.xの後期)に開発されました。その後、各種クラスタ機能を拡充して、Pgpool-IIとなり、現在に至っています。詳細は以下をご覧ください。

    pgpool-II とは(Let's Postgres)
    pgpool-II とは(Pgpool-IIドキュメント)

    Pgpool-IIは長く時間をかけて開発されてきましたし、開発が地道に継続されていますので、要件に合う場合、選択の第一候補となりえます。

    Pgpool-II(Let's Postgres)

    最新バージョンは今年(2019年)10月31日にリリースされた4.1で、4.0,3.7,3.6,3.5がメンテナンス継続されています。

    (2) BDR (Bi-Directional Replication for PostgreSQL)
     BDRとはPostgreSQL 9.4 でサポートされたストリーミングレプリケーションの機能を用いた両方向(Bi-Directional)のレプリケーション、いわゆるマルチマスタのレプリケーションです。2ndQuadrantにより開発されています。(イギリスにある企業で、PostgreSQLを中心としてサービスを展開しています)ストリーミングレプリケーションとBDRを含む、レプリケーションについては以下がよくまとまっています。

    2016年度WG3活動報告書 レプリケーション調査編(PGECons)

    また、ざっくり確認した結果は4年前のPostgreSQL Advent Calendarにもありました。

    PostgreSQL BDR (Bi-Directional Replication) を使ってみた

    このころのBDRはバージョン1で、Windowsには非対応でした。バージョン2を経て、いまはバージョン3が最新です。(PostgreSQL 10以降対応)

    コミッタの澤田さんもジョインして、今後日本での展開が期待されます。

    (3) Citus
     今年(2019年)はじめに、マイクロソフトに買収されたCitus Dataにより開発されたものです。

    MicrosoftがPostgreSQLデータベースを加速するCitus Dataを買収、顧客をAzure化か

     11月4日からAzure Database for PostgreSQL - Hyperscale(Citus)として、一般提供されています。

    ざっとした動作イメージは篠田さんの以下の資料で確認できます。

    Citus検証結果

    Citusを使ってPostgreSQLをスケールアウトしてみよう

    現在の最新バージョンは9.0です。

    基本的にはExtensionとツールですので、オンプレでも動作させることができますが、一部機能はEnterprise Editionのみとなります。(オンラインリバランスなど)

    Microsoftでは「Hperscal(Citus)/OSS RDB on Microsoft Azure Hands on Seminar」を月に一度程度実施しているので、それに参加すると手っ取り早く動作させ、概要がつかみやすいと思います。

    セミナーに参加して話を聞いた限りでは、まだ障害時の機能と運用が発展途上である印象を受けました。
    例えば最初のクエリはすべてCoordinator nodeが受けますが、これを複数ノード置くことはできず、高可用性はストリーミングレプリケーションによるCoordinatorのレプリケーションに頼る、など)

    Frequently Asked Questions

    またSQLの制限も割ときつめですので、あらかじめご確認ください。

    SQL Support and Workarounds(マニュアル)

    個人的にはXC -> XL (そしてX2?)のシェアードナッシングなクラスタが発展していくことを期待していましたが、こちらのほうは難しい感じですね。。。。

    When to use Postgres-BDR or Postgres-XL?

    あ、ちなみに冗長化の手法、名前は「うそぐれす(usogres)」が好きです w

    JUGEMテーマ:コンピュータ



    | meijik | PostgreSQL | 06:57 | comments(0) | trackbacks(0) | - | - |
    "Firebird on the road from v4 to v5" 概略
    0
      "Firebird on the road from v4 to v5" 概略

      本エントリはFirebird Advent Calendar 2019の三日目です。

      "Firebird on the road from v4 to v5"はFirebirdの初日に行われた最初のセッションで、
      Firebird Projectのドミトリィ・ヤマノフ(Dmitry Yemanov)により行われました。資料は以下のリンクから取得できます。

      "Firebird on the road from v4 to v5"

      このセッションでは、v4開発の現在の状態について説明し、その主要機能(新しいデータ型、バッチAPI、タイムゾーン)を確認しました。Firebird Conference 2019の他の専用セッションではカバーされていない改善点については、詳細が示されたとのことです。また、更新されたリリース計画や予定されているv4以降の機能など、今後のFirebird開発についても説明します(Firebird 5の今後の機能のレビューも)

      31ページの資料で以下の項目があります。

      ・メンテナンス
      ・Firebird 4.0 Progress
      ・Firebird 4.0 Preview
      ・Further Development
      ・Firebird 4.x evolution
      ・Planning Firebird 5.0

      明日以降、順に内容を確認・説明していきます。

      JUGEMテーマ:コンピュータ

      | meijik | Firebird/InterBase | 06:00 | comments(0) | trackbacks(0) | - | - |
      MySQLクライアントでの非同期処理概略
      0
        MySQLクライアントでの非同期処理概略

        本エントリはMySQL Advent Calendarの二日目です。

        MySQLの従来のプロトコルを利用するConnectorでは非同期の対応はありませんでしたが、
        MySQL 8.0.16でサポートされました。

        The MySQL C API now supports asynchronous functions for nonblocking communication with the MySQL server

        これらはもともとあるAPI関数の名称末尾に_nonblockingをつけた以下の六関数です。

        ・mysql_real_connect_nonblocking()
        ・mysql_real_query_nonblocking()
        ・mysql_store_result_nonblocking()
        ・mysql_next_result_nonblocking()
        ・mysql_fetch_row_nonblocking()
        ・mysql_free_result_nonblocking()

        ひとつのクエリを実行するときはmysql_next_result以外の5関数を使います。
        # 複数のクエリを実行する例(これは同期(blocking)の例)はこちらを参照してください。

        非同期のSELECTの例はこちらのマニュアルをご参照ください。。

        上記マニュアルにありますが、非同期処理の流れは以下のようなものになります。

        status = 非同期関数の呼び出し(args);
        while (status == NET_ASYNC_NOT_READY) {
        /* 処理が終了するまで他の処理呼び出し */
        other_processing ();
        /* 同じ引数で同じ関数をinvoke */
        status = 非同期関数の呼び出し(args);
        }
        if (status == NET_ASYNC_ERROR) {
        /* 非同期呼び出しエラー */
        } else {
        /* 非同期呼び出し成功。次の処理へ */
        }

        さて、C言語では非同期処理が実装されましたが、他の言語ではどうでしょうか?
        実はX ProtocolでそれをサポートするConnectorでは非同期処理が可能です。
        以下のマニュアルではNode.js, C#, Javaの例が確認できます。

        3.3 Synchronous versus Asynchronous Execution



        X Protocolでなく、従来のプロトコルでの各言語の対応は以下のとおりです。

        (1) Connector/J (Java) JDBCの仕様として無いため下記のような取り組みがあります。
        Asynchronous Database Access(ADBA) 

        (2) Connector/ODBCは未対応
        ODBCとしての仕様とMicrosoftの実装(SQL Server)にはある

        (3) Connector/Net (C#)
        Connector/Net自体はネイティブな非同期処理を持ちませんが、
        .Netが提供するTAP(タスク ベースの非同期パターン)ベースの非同期メソッドはあります。

        5.11 Asynchronous Methods

        タスク ベースの非同期パターン (TAP)

        Connector/Net自体はネイティブな非同期処理を持たないため以下で議論されたり、サードパーティのドライバや
        実装の試みがなされています。

        C# MySql Driver - Async Operations

        C#の高速なMySQLのドライバを書こうかという話、或いはパフォーマンス向上のためのアプローチについて

        明日はhmatsu47さんです!

        JUGEMテーマ:コンピュータ



        | meijik | MySQL | 08:41 | comments(0) | trackbacks(0) | - | - |
        Firebird Conference 2019 インデックス
        0
          Firebird Conference 2019 インデックス

          本エントリはFirebird Advent Calendar 2019の一日目です。

          Firebird Conference 2019は今年の10/17から19までの三日間、ドイツのベルリンで行われました。
          (私は長らく参加できていません。来年にはFirebird 4もリリースされると思いますので、なんとか参加したいと思ってます)

          今年のFirebird ConferenceはFirebird 4にフォーカスしており、一連のワークショップ、詳細なプレゼンテーションと実践的な演習も含まれました。これは、より教育的・実用的で、理論的ではないものにしたいためです。

          「プレゼンテーションとビデオを近日中に公開します」とのことなので、資料が発表されれば、それをもとにAdvent Calendar か、その後別のブログエントリにて取り上げたいと思います。全体のインデックスへのリンクは以下になります。

          Firebird Conference 2019

          とりあえずDAY1の13:00までの4セッションの資料はPDFでアップロードされていますので、順にFirebird Advent Calendar 2019でとりあげていきたいと思います。今年もよろしくお願いします。

          (1) Firebird on the road from v4 to v5.
          (2) Replication in Firebird 4: Configuration and practical examples.
          (3) New transactions' features and changes in garbage collection in Firebird 4.
          (4) Multithread sweep, backup and restore: implementation and performance test results.

          明日はnakagamiさんです!

          JUGEMテーマ:コンピュータ



          | meijik | Firebird/InterBase | 07:00 | comments(0) | trackbacks(0) | - | - |
          COUNT(DISTINCT expr)の概算値
          0
            COUNT自体は非常に負荷の高い処理です。(少なくともMySQLのMyISAMストレージエンジンのように件数をテーブルデータとして持っていない限りは)特に対象とする行数が莫大だったり、分散DBだったり、DISTINCTもあわせて指定されると、なかなかすぐには結果が返ってきません。

            そのため、最近のRDBMSやSQLのインターフェースを持つビッグデータ処理の実装では、COUNT(DISTINCT expr)について、正確な値を時間をかけて返す代わりに、概算値をはやく(負荷少なく)返す独自の関数を持つものが増えてきました。外部仕様としては次のものがあります。

            (1) 概算用の新しい集計関数を用意する
            (2) デフォルトがすでに概算で、厳密に計算する新しい集計関数を用意する

            さすがに従来のRDBMSで(2)を外部仕様とすると怒られるので、従来のRDBでは(1)が利用されます。
            順に説明します。

            (1) 概算用の新しい集計関数を用意する
             商用御三家(Oracle DB, SQL Server, IBM Db2)とOSS RDBMS御三家(MySQL, PostgreSQL, Firebird) + SQLiteの実装状況は以下のとおり。(比較用にいくつかクラウドのDWHに言及しています)

            (a) APPROX_COUNT_DISTINCT(expr)を利用する。
            Oracle 12c
            SQL Server 2019 (SQL Server以外のAzure SQL Databaseなどでサポートされていたものが使えるようになった)

            Oracleでは、これを含めて10個のAPPROX_%関数が12c以降に追加されました。

             APPROX_COUNT_DISTINCT(expr)は以下のクラウドDWHでも利用できます。
            Azure SQL Database,Azure Synapse
            Snowflake(これはHLL()集合関数の別名: HLLはHyperLogLogというアルゴリズムの名称)

            prestoでは、類似のAPPROX_DISTINCT(expr)が利用できます。
            これは以下の記事からも参照できます。

            クエリのパフォーマンス改善のための Tips

            (b) APPROXIMATEをつける
             PostgreSQL自体は該当機能はありませんが、
            フロントエンドがPostgreSQL 8.x互換であるAmazon Redshiftでは、以下のような表記ができます。

            APPROXIMATE COUNT(DISTINCT expr)

            これは先にとりあげたHyperLogLogのアルゴリズムを使うためdistinctがないcountには有効ではありません。

            結果としては冒頭であげた7つのRDBMSのうち、Oracle, SQL Server以外のRDBMSは概算用の新しい集計関数は利用できません。

            (2) デフォルトがすでに概算で、厳密に計算する新しい集計関数を用意する
             Google BigQueryでは、count(distinct expr)のデフォルト動作がすでに概算の値になります。
            これを避けて、正確なカウントを取得するためには、以下のどちらかを使います。

            ・EXACT_COUNT_DISTINCT(expr)
            ・exprをgroup byして、countする(EXACT_COUNT_DISTINCTがサポートされていないバージョンの場合)

            上記はレガシーSQLについてのものです。BigQueryは従来のSQLをレガシーSQL, 新たにSQL標準に寄せたものを標準SQLと呼んでいます。

            JUGEMテーマ:コンピュータ



            | meijik | SQL | 08:58 | comments(0) | trackbacks(0) | - | - |
            たまたま「プリントヘッドの種類が違います」エラーから復活@MG6230
            0
              以前以下のブログで紹介したように、プリンターが故障して、そのまま一年半以上放置。


              「プリントヘッドの種類が違います」エラー@MG6230


              本体は捨てるに捨てられず、やはりそのまま放置していていました。

              しかし、新しく買ったTS-6030は、インクのリセッターがもともと使っていたエレコムからはでていない、
              調べたときは単品で4980円(しかも謎の100回上限?) リセッターしか使えず、その点MG6230いいなー、
              と思っていたところで、夏休みの宿題(?) 一念発起でまた専門店からプリンタヘッダを購入し、
              修理する(プリンタヘッダを交換するだけ)ことにしました。

              それで、いろいろMG6230をいじっていると、なんと「プリントヘッドの種類が違います」エラーがでなくなりました。ただ印刷してみると、黒が目詰まりを起こして、まったくだめ。そこで、プリンタヘッドを購入したお店で同時購入した目詰まり解消クリーナーを使って、丁寧に洗浄、半日乾かして動作させると、無事動きました。

              とりあえず、このプリンタヘッドが死亡して、次のプリンタヘッドにつけかえて、それがお亡くなりになるまでは、しばらく使えそうです!

              ....んで、検索するとエレコムはないですが、サンワサプライのTS-6030のものが出ているので、それを使ってTS-6030のほうも、ランニングコストを下げて使ってみたいと思います。さて、どちらが長持ちするのか。

              サンワダイレクト キャノン BCI-371+370/6MP 詰め替えインク リセッター付 6色セット

              JUGEMテーマ:コンピュータ



              | meijik | 日々 | 16:53 | comments(1) | trackbacks(0) | - | - |
              「他のデータベースではRECURSIVEを指定するとエラーになります」の読み筋がわかった夜
              0
                昨日このイベントに出て、終了後「SQL ServerでRECURSIVEつけるとエラーになるんですよね」といわれた。

                確かにプレゼンでは、テンポラル表や、DROP TABLE IF EXISTSの例を出して、これらはSQL Server 2016で動作確認を行いながらやったけど、WITH RECURSIVEはこれまで使っていた資料のつかいまわしで、SQL Serverで動作確認してなかった。確かにエラーになる。

                1> WITH RECURSIVE n AS
                2> (SELECT empid, name
                3> FROM shain
                4> WHERE name = N'きむら'
                5> UNION ALL
                6> SELECT nnext.empid, nnext.name
                7> FROM shain as nnext, n
                8> WHERE n.empid = nnext.mgrid)
                9> SELECT name FROM n;
                10> go
                メッセージ 102、レベル 15、状態 1、サーバー MEKIMURA-JP¥LOCALDB#5ADC7725、行 1
                Incorrect syntax near 'n'.

                あらためて、マニュアルをみると確かにRECURSIVEの記述がない。
                以下の記事でも、商用御三家(Oracle DB, SQL Server, Db2)はRECURSIVEキーワードをサポートしていなかった。

                One Giant Leap For SQL: MySQL 8.0 Released


                Firebird でサポートしていたので、商用御三家もサポートしているものと思い込んでいました。びっくりです。

                JUGEMテーマ:コンピュータ



                | meijik | クロスデータベース | 10:24 | comments(0) | trackbacks(0) | - | - |
                2019年のLIST関数。主要なRDBMSのすべてがサポート(GROUP_CONCAT,STRING_AGG,LISTAGG)済み
                0
                  昔々WATCOM SQLというデータベースがLIST関数をサポートしました。これはいわば文字列に対する集計関数のようなもので、

                  DBCAT DBNAME
                  ----- ------
                  1 Firebird
                  2 Oracle
                  1 MySQL
                  2 DB2
                  1 PostgreSQL
                  2 SQLServer
                  1 SQLite



                  DBCAT DBNAME
                  ----- ------
                  1 Firebird,MySQL,PostgreSQL,SQLite
                  2 Oracle,DB2,SQLServer

                  のようにするための関数です。

                  SELECT DBCAT, LIST(DBNAME)
                  FROM DBPRODUCT
                  GROUP BY DBCAT;

                  と使います。

                  以前以下のようなエントリを書きました。

                  Firebird 2.1の新機能(4) LIST関数(キムラデービーブログ)

                  この当時はFirebirdとMySQLしか対応していませんでしたが、
                  もう12年も前(!?)のことなので、いろいろと状況は好転しています。

                  (1) PostgreSQL 9.0でSTRING_AGGサポート
                   PostgreSQLでは、ARRAY_AGGのようなSTRING_AGGをサポートしました。その後SQL Server 2017でSTRING_AGGがサポートされました。
                  (2) Oraclel 11g R2, IBM DB2 9.7 FP4LISTAGGをサポート
                  (3) SQLiteでは2007-12-14 (3.5.4)にてGROUP_CONCATをサポート

                  つまり主要なRDBMSのすべてで当該関数がLIST,GROUP_CONCAT,STRING_AGG,LISTAGGのいずれかでサポートされた、ということになります。

                  # どこかに途中までまとめていた、とおもったら拙著「おうちで学べるデータベースの基本」の六章●文字列を集約する「GROUP_CONCAT」の注7でした。ここではOracle 11gでLISTAGG関数サポートと記述しましたが、11gR2が正しいですね。本記事はこれを最新のものにアップデートしたものです。

                  JUGEMテーマ:コンピュータ



                  | meijik | クロスデータベース | 09:06 | comments(0) | trackbacks(0) | - | - |
                  Win7上でMicrosoftSQL Server を動作させる
                  0
                    タイトルだけ見ると「そんなのあたりまえじゃーん」と思うひとがほとんどですが、
                    実はあたらしめのバージョンのSQL ServerはWin 8.x以降、いや、ほとんどWin10でしか動作しないのです。。。。

                    SQL Server のバージョンは最新は2019だけど、Linuxで2018動作させているし、今回検証したいのは2016なので、当初Win7をサポートしていたSQL Server 2016 Express Editionをインストールしようとしました。
                    しかし、ダウンロードページにいくと、いまはSP2で、Win7は対象外、ダウンロードできても、動作しません、といわれて心が折れそうになる。(実は以前いろいろ試してだめだった経験が)

                    Microsoft® SQL Server® 2016 Service Pack 2 Express (ダウンロードページ)

                    今回はLocalDBを指定してみたら、なんとかうまく以下の手順で起動できました。

                    MicrosoftSQL Server 2016 Express LocalDB で気軽に DB を試す(愛しく切ない1bed)

                    キモはDB作成、起動したあとに、infoでインスタンスパイプ名を確認して、それをsqlcmd -S で指定することです。PS(Power Shell)ではsqlcmdが起動できなかったため、sqlcmd自体はコマンドプロンプトで実行し、確認できました。

                    確認したかったのは、MySQLとSQL Serverだけが対応しているDROP TABLE時の複数テーブルの指定の詳細です。以下のバグ表の参考としてSQL Serverの結果も付加してあります。

                    Bug #95248 Manual description of DROP TABLE for multiple tables is not clear.


                    JUGEMテーマ:コンピュータ



                    | meijik | SQL Server/SYBASE | 13:02 | comments(0) | trackbacks(0) | - | - |
                    データベース都市伝説「DB2は単一トランザクション内に、複数のセーブポイントを定義することができません」
                    0
                      トランザクションまわりの調査をしている私です。

                      ポケリファ第四版や、ここの記述に、首記のことが書いてあります。

                      はぁ?

                      2009年リリースのIBM DB2のリファレンスには、複数のセーブポイントの例があります。

                      たぶん古いバージョンの記述を訂正せずにきたものだと類推。

                      おおもとの記述はなんと、IBM自体からでていた!

                      [JAVA Developer特別企画]2003年10月号 知っておきたいデータベース移行術「Oracle→DB2編」 (6/7)

                      これが2003年の記事。ということは、前年にでた8.1ベースの記事と思われます。

                      んで、調べたら2004年に出た8.2のリリースノートに以下の記事があり、これで対応したのだと思います。

                      ◇ ネストされたセーブポイント

                      ネストされたセーブポイントにより、ロールバックのより優れた制御が行えるようになります。セーブポイントを別のセーブポイント内にセットアップすることができます。DB2 UDB では、ネストされたセーブポイントを上限なく必要なレベルだけ設定することができます。ネストされたセーブポイントを使えば、アプリケーションに複数レベルのアクティブなセーブポイントを同時に設定でき、必要に応じて、どのアクティブなセーブポイントまででもアプリケーションをロールバックすることができます。

                      JUGEMテーマ:コンピュータ



                      | meijik | DB2 | 13:39 | comments(0) | trackbacks(0) | - | - |
                         1234
                      567891011
                      12131415161718
                      19202122232425
                      2627282930  
                      << April 2020 >>
                      + RECOMMEND
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
                      100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 (JUGEMレビュー »)

                      100人のうちの一人としてミックさんの本を推薦しています。
                      + RECOMMEND
                      MySQL 5.1 Plugin Development
                      MySQL 5.1 Plugin Development (JUGEMレビュー »)
                      Andrew Hutchings,Sergei Golubchik
                      MySQL 5.1 のプラグインを作るならこれ!
                      + RECOMMEND
                      AWKを256倍使うための本 (Ascii 256倍)
                      AWKを256倍使うための本 (Ascii 256倍) (JUGEMレビュー »)
                      志村 拓,鷲北 賢,西村 克信
                      ここにきてまさかの復刊。15〜16年前の本ですが、いまでも十分役立ちますよ!!
                      + RECOMMEND
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
                      Linux-DB システム構築/運用入門 (DB Magazine SELECTION) (JUGEMレビュー »)
                      松信 嘉範
                      Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
                      + RECOMMEND
                      + RECOMMEND
                      超・極める!MySQL
                      超・極める!MySQL (JUGEMレビュー »)
                      坂井 恵,志村 和彦,ひろせ まさあき,松信 嘉範
                      内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。
                      + RECOMMEND
                      The Root of .NET Framework
                      The Root of .NET Framework (JUGEMレビュー »)
                      荒井 省三
                      .NETの根っこをつかむ、か?
                      + RECOMMEND
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
                      エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
                      奥野 幹也
                      これまでにない構築、そして構築後のMySQLのための本。
                      + RECOMMEND
                      Database Management Systems
                      Database Management Systems (JUGEMレビュー »)
                      Raghu Ramakrishnan,Johannes Gehrke
                      ミックさん連載の参考書籍です。
                      + RECOMMEND
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series)
                      Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series) (JUGEMレビュー »)
                      W. Richard Stevens,Stephen A. Rago
                      必読! といいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。
                      + RECOMMEND
                      + RECOMMEND
                      + RECOMMEND
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE
                      Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE (JUGEMレビュー »)

                      DELL SX260の換装用に購入。今はコチラのほうが安いですね。
                      + RECOMMEND
                      情熱プログラマー ソフトウェア開発者の幸せな生き方
                      情熱プログラマー ソフトウェア開発者の幸せな生き方 (JUGEMレビュー »)
                      Chad Fowler
                      OSC2010神戸に出展されたジュンク堂で買いました。
                      + RECOMMEND
                      Software Design 総集編 【2000~2009】(DVD付)
                      Software Design 総集編 【2000~2009】(DVD付) (JUGEMレビュー »)

                      メガトン級の過去記事。売り切れる前にお店に急げ!
                      + RECOMMEND
                      + RECOMMEND
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
                      玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2 (JUGEMレビュー »)

                      Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
                      + RECOMMEND
                      + RECOMMEND
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
                      acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22 (JUGEMレビュー »)

                      色違い黒(他に青と白があります): メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
                      + RECOMMEND
                      Firebird 徹底入門
                      Firebird 徹底入門 (JUGEMレビュー »)
                      木村 明治,はやし つとむ,坂井 恵
                      Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
                      + SELECTED ENTRIES
                      + RECENT COMMENTS
                      • たまたま「プリントヘッドの種類が違います」エラーから復活@MG6230
                        meijik (11/20)
                      • [ミュージシャンに聴かせたい・弾かせたい!] (4) 山田元気様
                        meijik (07/27)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        meijik (03/03)
                      • 2019年の木村明治
                        田中尚 (01/08)
                      • 使い慣れたSQLに潜む実装依存: Firebirdの場合(6) 文字列との結合演算子
                        noname (12/10)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        Moriaki_ (01/05)
                      • 2015年版 InterBaseの歩み
                        nakagami (12/06)
                      • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
                        meijik (11/22)
                      • 分散DB本読書会第46回メモ「STOP AFTER 10」
                        masudahidehiko (09/01)
                      + RECENT TRACKBACK
                      + CATEGORIES
                      + ARCHIVES
                      + MOBILE
                      qrcode
                      + LINKS
                      + PROFILE