私はDoctrine_Core :: HYDRATE_ARRAYを使用すると、大きな違いをしたことがわかりました。 Viewでのみ使用している場合、これはしばしば意味があります。
さらに複雑なネストセットが必要な場合は、Doctrine_Queryを使用するほうがよいでしょう。あなたのUbuntuを使用している場合
$query = Doctrine_Query::create();
$query->from('Model_Category cat')
->leftJoin('cat.Node n')
->leftJoin('n.Childre c')
->where('count(c.id) > 0')
->andWhere('cat.id = ?', $id);
$query->execute(array(1), Doctrine_Core::HYDRATE_ARRAY)
Xdebugのプロファイリングは、非常に役立ちます:
は何が欲しいのは、おそらくこのようなクエリなものである
須藤はapt-getののphp5-xdebugの
をインストール
次に:
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.profiler_enable=on
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%H.%R.%t"
は、ディレクトリを作成することを忘れないでください:
私が持っているxdebug.iniで3210
はsudo geditの/etc/php5/apache2/conf.d/xdebug.ini
ます。mkdir/tmpに/ xdebugの
にsudo chgrpのWWW-データを/ tmp/xdebugの
chmodコマンド774を/ tmp/xdebugの
は、その後、私は、出力を見てKCachegrindを使用し、これは
に役立ちます願っていますあなたは私のLINQやコードの一部をしてください提供することはできますか?。 –
ありがとうマックス、あなたは私に多くの時間を節約します。 –