オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Jonathan Allen , 翻訳者 編集部N 投稿日 2009年11月19日
悲しいことに、「ORM」という言葉には、「パフォーマンス問題」がいつも付きまとう。開発者から基礎となるSQLを隠すことで、ORMは、大きな生産性の向上を提供することができる。残念ながら容易に、ばかばかしいほど悪いクエリを生成し、それを認識することもない。通常のデータベース管理者は、生成されたコードが呼ぶストアドプロシージャにより、問題となるストアドプロシージャをクロスリファレンスすることにより、呼び出し元の問題のコードを見つけることができる。しかしORMが信じている、動的に生成されたSQLでは、そのようなやり方は、めったに通用しない。そこでORMプロファイリング用のもっとちゃんとしたツールをよく見てみることにする。
NHibernate
NHibernateプロファイラ (NHProf))には、基本的な製品に期待することは、皆含まれている。すべての統計を保持することに加えて、最近呼ばれたクエリのリストを完全なSQL文で、そして完全なスタックトレースにより、それを呼び出したコードまでのバックトレースのリストを表示する。インターフェースがきれいで、非常によくクロスリファレンスされていて、興味のあるクエリを試すことから、あるかたまりのコードが使用する全クエリへ切り替えるのも簡単である。
NHibernateプロファイラで本当に優れているのは、警告機能である。ある警告は、データベースのエラーあるいは偶然にも複数のスレッドが1つのセッションを使ってしまうような緊急の問題を指摘する。別の警告として、おそらくは単一のバッチにまとめられるべきである大量の個別の書き込みのような可能性の高い問題も指摘する。制限なしの結果セットのような将来の問題に繋がるまずい設計を警告すものもある。
制限なしの結果セットは、クエリが実行されて、NHibernateでSetMaxResults()あるいは、SQL文でTOPやLIMITを使用して、返される結果の数を明示的に制限しない場合である。通常、これは、クエリがいつも数レコードしか返さない、とアプリケーションが決めてかかっている、ことを意味している。この仮説は、開発中やテストのときは成り立つが、実運用時に爆発を待つ時限爆弾である。
NHibernateプロファイラの欠点は、ちょっとばかり侵害的なことである。走っているプロセスにアタッチできず、フロントジョブとして配置しなくてはならない。推奨方法は、直接コード中にNHibernateプロファイラへの参照を含めることであるが、log4netのユーザは、app.configの設定を介してプロファイラを動作させることもできる。
NHibernateプロファイラは、有償製品で最低で1ユーザあたり約300ドルである。
LINQ to SQL
LINQからSQLへのマッピングで起きる問題を調べているときに、開発者がおそらく最初に考えるのは、DataContextのロギングである。DataContextオブジェクトは、それが生成するすべてのSQLを選んだTextWriterに届けるLogプロパティを持っている。DataConextは、ただであり使うのも易しいが、ものすごい量の洗練されていないSQL文を生成するので、ちゃんとしたアプリケーションに使うには、問題である。
LINQ to SQLプロファイラ (L2SProf)は、NHibernateプロファイラを作った会社からのもので、同じように動くようだ。リアルタイムなプロファイリングに加えて、分析を後回しするように、ログファイルを生成する設定もできる。NHProfのように、1ユーザ約300ドルで、現在は、ベータ・バージョンである。
Huagatiクエリ・プロファイラ も、侵害的なプロファイラのひとつである。彼がはっきり言うには、「ランタイム・コンポーネントは、Linq-to-SQLかLLBLGen Proのいずれかを使ってSQL Severにアクセルするアプリケーションに統合され、配布されるように設計されている。」幸いにして、実行時に必要に応じてプロファイラをオン・オフできる。
Huagatiのユーザ・インターフェースは、全く時代遅れのものである。画面の半分をSQL文で埋める単一の大きなグリッドとその下にあるスタック・トレースからできている。NHProfやL2SProfにあるような警告とか要約画面のような気のきいたものは、全くないが、筋金入りの開発者には、圧倒的な特徴がある、詳細な情報である。
Huagatiクエリ・プロファイラは、単に絶対存続時間や行数を示すのではなく、本当に深く調べ、SQL Serverが提供するすべての情報を取り出すのである。単に全体時間のみを示すのではなく、クエリのコンパイル時間対実行時間のような重要な情報が見れる。I/Oが含まれていて、実際の実行計画さえ見ることができる。
Huagatiクエリ・プロファイラは、有償製品で、機能限定バージョンは、1ユーザで50ドル、フル・バージョンが1ユーザで120ドルである。
ADO.NETエンティティ・フレームワーク
この話は、全く哀れなものである。第一に、LINQからSQLへの変換で何が起きているのかを見るような、基本的なSQLロギングさえできないのである。さらに、これと一緒動くプロファイラを誰も作っていないようである。
結論
.NET用のORMフレームワークは、他にもたくさんあるが、どれもADO.NETエンティティ・フレームワークと似たような状況である。ここで述べた2つのプロファイリングツールを別にして、データベースに組み込みのプロファイラを使う際、上記のどれに対してもほとんどあるいは全くサポートが無い。
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信