SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

アイエニウェア・ソリューションズ ドキュメント翻訳(AD)

SQL Anywhere 11のクールな新機能トップ10

原文: Top 10 Cool New Features In SQL Anywhere 11

  • このエントリーをはてなブックマークに追加

 もう1つ、トップ10に入れるかどうか悩んだ機能がありました。それはUltra Lightでのバックグラウンド同期のサポートです。この機能を利用すると、ハンドヘルドデバイスに大量のコードを展開するときに、Mobile Link同期の進行中にユーザーが操作を継続してもデータがめちゃくちゃにならないようにするアプリケーションを比較的簡単に設計できます。この機能があれば、2番目のスレッドで同期を開始することができ、Ultra Lightは既にコミットが完了している変更だけをアップロードできます。それ以降に加えられた変更は、次の同期の際にアップロードされます。この機能がクールである理由ですか? 筆者のクライアントの中で最初にSQL Anywhere 11への移行を決めてくれた会社が、移行を決めた最大の理由としてこの機能を挙げたからです。トップ10リストに含めるには不十分ですが、この記事で触れるには十分にクールな機能だと言えます。

 その他に、縁の下の力持ちのような存在の非常に重要な機能を2つ紹介しておきます。

  • インデックスのみの取得機能。クエリを満たすために必要なデータがインデックスで見つかった場合は、SQL Anywhereはテーブルの検索さえ行いません。
  • 複数インデックススキャン機能。クエリを満たすために、同じテーブル上の最大4個の異なるインデックスを使用できます(現在の制限では各テーブルにつき1つのインデックスのみ使用可能)。

 一部のクエリは、この2つの機能のおかげで速度が飛躍的に速くなります。これが、これらの機能をここで紹介した理由です。この2つは縁の下の力持ちのような機能のため、クールな新機能トップ10には入れていません。ミニバンの購入を検討するときにカップホルダーを見たがる人はいますが、カムシャフトについて知りたがる人はあまりいませんね。それと同じことです。

 Mobile Link同期環境ではMySQLを統合データベースに使用できます。つまり、Mobile LinkがMySQLと連携して機能するようになったのです。個人的に言わせてもらえば、なぜMySQLを使う人がそんなに多いのかよく分かりません。MySQLは、設定やオプションが難しくて管理しにくく、落とし穴や混乱がつきもので、しかも(サポートを利用する場合は)無料ではありません。それにもかかわらず、MySQLは人気があります。そしてこのたび、MySQL環境でSQL Anywhereを使い、Mobile Link経由でレガシーのMySQLデータベースと同期する自己管理型のリモートデータベースを実装できるようになりました。レガシーと言えば、Mobile Linkは、メインフレーム上のDB2と連携して動作するようにもなっています。あまりクールな機能とはありませんが、もしこの機能をきっかけにSQL Anywhereの世界に足を踏み入れる人がいるならば、もちろん非常にクールだと言えるでしょう。

補足記事:SQL Anywhere 11にまつわる奇妙な話と気まぐれな話

 まずは、気まぐれのカテゴリに属する話です。WindowsのSQL Anywhere実行可能フォルダは、現在、"win32"ではなく、"Bin32"になっています。つまり、"%SQLANY10%\win32 \..."などのパスが含まれたバッチファイルがある場合は、"%SQLANY11%\Bin32\..."のように2箇所を変更する必要があります。こうなった責任はMicrosoftにあるとだれかが言っていましたが、あの巨人の気まぐれに合わせるのは無理な話でしょう。

 

 最新バージョンでは、既定で"Printable Books"バージョンのヘルプがインストールされるようになっています。つまり、あの巨大なPDFファイル群をインストールしたくない場合は、ドキュメントをインストールするときに[Custom]オプションを選択する必要があるのです。通常のコンパイル済みHTMLバージョンのヘルプもあります。従来どおり、すべてのマニュアルが1箇所にまとまっていて、全文検索機能が利用できるという優れものです。だれが紙を必要とするのでしょうか? まったく奇妙な話です。

 

 SQL以外の言語でストアドプロシージャを書く機能は大幅に拡張され、改善されました。この機能はクールな新機能トップ10にランクインしています。ただ、奇妙な点が1つあります。もしあなたの選んだ言語がたまたまCまたはC++だった場合は、ヘルプの次の行を読んで落胆することでしょう。「また、コンパイル済みネイティブ関数はネイティブ関数呼び出しAPIを使用する必要があるという点にも注意すること」。このAPIはずっと以前から使われているものですが、あらゆるコーディング世界において最悪のインターフェースの1つであり、今なおそれを使わなければならないというのは不幸としか言いようがありません。もっとも、この要件が課されるのはCとC++だけの話で、Perl、PHP、Visual Basicやその他の言語では使う必要がありません。このAPIが以前よりも悪くなっていないことがせめてもの救いです。

 

 INSTEAD OFトリガーは最近のクールな新機能です。奇妙なのは、エンジニアがシステムカタログテーブルに対するトリガーを用意してくれなかったことです。CREATE TABLEなどのスキーマオブジェクトを動的に操作する高度なアプリケーションが作成されることが多くなっており、それらの変化を動的にキャプチャし、追跡する機能は歓迎されるはずです。システムカタログトリガー内のコードがユーザーテーブルしか操作できず、それ以上のスキーマの変更を発行できないとしても、ニーズの80%以上は満たされるはずです。おそらく、あの使いにくい関数呼び出しAPIが改良されるよりも、この機能が追加される方が早いことでしょう。

次のページ
クールな新機能トップ10

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
アイエニウェア・ソリューションズ ドキュメント翻訳連載記事一覧

もっと読む

この記事の著者

Breck Carter(Breck Carter)

RisingRoad Professional Servicesの主幹コンサルタント。SQL Anywhereデータベースと、Oracle、SQL Server、SQL AnywhereとMobiLinkとの同期に関するコンサルティングとサポートを得意とする。SQL Anywhereブログの著者でもある。連絡先はbreck.carter@gmail.com。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5475 2010/11/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング