UX-TV 2/1 フォローアップ: 「Windows Phone のローカルDBはバキュームする必要はありますか?」

答え:「必要ありません。どうしても必要だという場合は、データベースファイルを再構築する方法で対処してください。」

「データベースのバキューム」という言葉が聞きなれない方もいると思うので、PostgreSQLSQLiteで利用される保守作業です。

現時点のWindows Phoneにおけるローカルデータベースは、アプリケーション固有の分離ストレージに格納されるもので、他のアプリケーションとは共有されません。SQLなどのコマンドを実行する形式ではなく、Windows PhoneのLINQ to SQLを利用してデータベースを操作します。このLINQ to SQLでは、コマンドの実行が用意されていないので、バキューム処理に相当するコマンドは利用できません。

どうしても最適化を行いたい場合、次の方法が簡単だと思います。これはデータベースの最適化の一般的な手法です。

・同じスキーマを利用して、新しいデータベースファイルを作成する

・元のデータベースから必要なデータを読み出し、新しいデータベースへ追加する (この時点でインデックスも作られます)

・ローカルデータベースの接続文字列を変更し、新しいデータベースを利用する

接続文字列の例: string DBConnectionString = "Data Source=isostore:/ToDo.sdf";

 

Windows Phoneのローカルデータベースについては、

 https://msdn.microsoft.com/ja-jp/library/hh202865(v=vs.92).aspx

をご覧ください。

 

※ UX-TVの番組中のご質問は、できれば放送している番組に関連したものにしていただけれると助かります。よろしくお願いします。