先日、蒲田で美味しい豚トロを食べて以来、

気軽に美味しい料理が食べられるお店の開拓にはまっている。


まだ数は少ないけど、

今後のために今のうちから食べログをつけることに。


そんなわけで早速、個人的なランキングでおとどけ↓



-- ☆★☆ おすすめLunch Shop ☆★☆ --


1.Antica osteria gondoletta (アンティカ・オステリア・ゴンドレッタ)


住   所 : 〒144-0051 東京都大田区西蒲田7-50-4 ルミエール西蒲田 1F

電   話 :  03-3733-4515

営業時間 : 11:30~14:00(L.O) 16:30~26:00(L.O)

休   み : 日曜・第2月曜


カリッと焼きあげた豚トロにチーズのソースが絶妙な味わい。

その他、前菜・デザートもすべて美味しく、堂々の1位。



2.ルシアン (LUCIAN)


3.もくようかん




-- 番外編 --


1.ブルーバイユー・レストラン


Tokyo Disneylandのカリブの海賊脇にある、落ち着いた雰囲気のレストラン。



今度はVMWareのインストール後の話。

無事にインストールが終わって、いよいよ実行!

って時に、またしても問題が・・・。

VMWareが立ち上がってくれない・

なんで??


すぐさまネットで検索。

するといくつか参考になる情報が。


手順については以下の通り。



1.「VMware Host Agent」サービスが起動してるか確認


2.C:\WINDOWS\system32\drivers\etc\hostに「127.0.0.1 localhost」の記述があるか


3.https://127.0.0.1:8333/ui/  にアクセス。

  SSOが働くので、Windowsの設定値を入力すると入れる。



とまあ、こんな感じ。

無事に問題も解決。




ずっと前、新人研修の時に入れたVMWare。
その後、使わないやと思ってアンインストールするも、
残骸があちらこちらに散らばっている様。

一生懸命、残骸を探して消すも、
中々綺麗になくならず。。。

致し方なく、残骸が散らばったままの気持ち悪い状態で、
何事もなかったかのように過ごしていたが、
しかし等々、プロジェクトの都合上、VMWareを入れなければならない状況に。 

・・・入るのか?素直に何事もなかったかのように入ってくれるのか??
と恐る恐るインストールすると、不安的中。
前のVMWareをアンインストールしようとしてエラーが発生し、
それより先に進めない状況に。


それからが非常に大変だった。


ネットで調べてアダプターを削除したり、
レジストリをキレイにしたりと悪戦苦闘するも、
結局、インストール出来ず。

最終的にはOSの再インストールかと思ったが、
素晴らしい記事を発見↓↓↓

http://ameblo.jp/marusa99/entry-10245073653.html

VMWareのインストールファイルをcオプションで実行すると、
なんときれいにしてくれるらしい!!

実際にやってみたところ、
一瞬にして解決。

先人の知恵に感謝。


SQL Serverのオプティマイザさんは、

基本的には有効なIndexを選択してくれるけど、

「どうしてもこのIndexが使いたいんだ!!」

って時に使います。



SELECT *

FROM [テーブル名] WITH(INDEX([インデックス名]))

WHERE (条件)



Hint文ってやつですね。


せっかくオプティマイザが頑張ってくれてるので、

あんまり指図は避けたいものですが。。


「クエリをパラメータ化すると遅くなる」というQAが来たので調査。


が、中々原因がわからない。


色々と探ってみると、一因として、

実行プランの最適化が打ち切られてる場合があるらしい。


そこで、オプティマイザが最適化の処理を途中でやめないように

トレースフラグをonにして実行してみる。



-- ■最適化時間の延長

dbcc traceon(8788)

→クエリ実行

→→dbcc traceoff(8788) (トレースoff)



この処理を試してみたが、

残念ながら今回のケースでは当てはまらなかった。



う~ん、残念。。。



SQL Server の性能測定をする前に、必ず実行するコマンド。

やらないと正確な測定ができません。。




■データバッファキャッシュのクリア


 DBCC DROPCLEANBUFFERS


 SQL Serverはクエリが発行されると、

 まずは近場のキャッシュにデータが残っていないか見に行く。


 ここデータがあるかないかで速度が変わってくるので、

 測定を行う前には必ずクリーンにする。




■プロシージャキャッシュのクリア


 DBCC FREEPROCCACHE


 SQL Serverの習性(機能)として、

 実行したクエリのプランをキャッシュに保存する。


 同じクエリを再実行すると、

 実行プランを再利用しようとするので、

 ここでも測定前には消しておく必要がある。






とあるPJのクエリの検証を行うために、

スクリプトを流して環境を構築していると、

初めてお目にかかるメッセージが。。。


「データベース 'XXXX' のトランザクション ログがいっぱいです。
ログの領域を再利用できない理由を確認するには、
sys.databases の log_reuse_wait_desc 列を参照してください。」


…しまった。そういえば、DBの復旧モデルを「完全」にしたままだった。



新しく作り直すのも手だが、ここは勉強がてら、

ログがいっぱいになった時の対処方法を調査。


<参照>

満杯になったトランザクション ログのトラブルシューティング (エラー 9002)

http://msdn.microsoft.com/ja-jp/library/ms175495.aspx



状況に応じて適切な対処方法をとる必要があるが、

主な対応方法は以下の通り。。


  • ログをバックアップします。
  • ディスク領域を解放して、ログが自動的に拡張できるようにします。
  • 十分な空き領域があるディスク ドライブにログ ファイルを移動します。
  • ログ ファイルのサイズを増やします。
  • 別のディスクにログ ファイルを追加します。
  • 実行時間の長いトランザクションを完了または強制終了します。

    どのような対応をとるかはプロジェクトによって異なるが、

    今回は検証環境ということで、

    とりあえず復旧モードを一括 → クエリ実行 → 単純に戻す
    ことで対応。


  • ・・・あんまり根本的な解決にはなってないきがしますが。。。


    動的SQLを組んでて意外とはまってしまったのが、

    シングルクォーテーションの出し方。


    エスケープ文字(\)を使用することで利用可能だと思っていたが、

    これが中々うまくいかない。


    で、調べてみたところ、

    OK Waveに同じように苦しんでいた人を発見。

    さっそく試してみると、

    なんとか認識をしてくれた。


    手順は、

    ①シングルクォーテーション部分にもう一つ、シングルクォーテーションを付け加える

    ②変数部分は離す

    ③変数部以外の文字列を、シングルクォーテーションで囲む

    ④変数と文字列の間に + 記号を加える


    以上、この手順で無事に認識してくれました。


    それにしても、ややこしい・・・。

    動的SQLを作成しているときに、

    Transact-SQL内で改行コードの入れ方がわからなかったため、調べてみた。


    どうやらT-SQLの場合は「\n」ではなく、

    CR LFのアスキーコード「NCHAR(13) + NCHAR(10)」

    を使用するらしい。


    検証してみたところ、無事に改行された。。