都内で働くSEの技術的なひとりごと

都内でサラリーマンやってます。マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。よろしくお願いします♪

何か便利だと思うことやれば、何か不都合なことおきるよね...と思って記事書いてみたけど、ちょっとトリッキーな方法で修正できるので、その方法を記事にしてみる

 少し前に、予測行数がおかしい件について記事を書きました。ryuchan.hatenablog.com

 少しトリッキーですが、USE句でパラメータ化されていないデータベースを指定し、実際のクエリでは [データベース名].[スキーマ名].[テーブル名]と指定することで解決できます。例えば下記の通りです。

USE master -- ← master データベースの パラメータ化は単純(SIMPLE)

SELECT * FROM AdventureWorks2012.Sales.OrderHeader -- AdventureWorks2012 のデータベースのパラメータ化は強制(FORCED) 

 上記の対応を行うと、下図の通り予測件数も正確になります。(あ、上記クエリの結果ではないです。時間がないので色々手抜きになってます。)
f:id:koogucc11:20151116161558p:plain

 うーん、これだったら OPTION 句でパラメータ化を指定できるようにしてくれたらいいのに....(独り言)

※自分に適した仕事かぁ。なんだろうね。