これは少し奇妙に思われます。テスト環境でデータベースをあるサーバー(SqlExpress)から別のサーバー(フルSqlServer)に移行しました。最初のサーバーからデータベースを切り離し、mdfファイルとldfファイルをコピーしてから、それらを新しいサーバーに接続しました。それはうまくいきましたが、パフォーマンスの低下がいくつかあります。したがって、速度とおそらくは実行計画に関していくつかの比較を行いたいと思います。ここで問題が始まります
元のサーバー(SQLExpress)に残した元のデータベースを再接続することはできません。デタッチされたため、何もしませんでした。そうするまで、それは魅力のように機能しました。
しかし、元のデータベースサーバー(Sql Express)に接続したい場合、次のメッセージが表示されます。
結果の累積データベースサイズがデータベースごとのライセンス制限の10240 MBを超えるため、CREATE DATABASEまたはALTER DATABASEが失敗しました。 (.Net SqlClientデータプロバイダー)
悲しいことに、これはパーティーの真実であり、データベースのサイズは10,911,616 KB(ログの場合は1,024 KB)です。切り離した後は何もせず、それまでは動作していたので、正直なところ、私は困惑しています。
しかし、私は非常に確信しています、そのデータベース内にはたくさんの空き容量があります(約9GB程度)
したがって、これは3つの部分からなる質問です。
その他のサーバー情報:
- この問題につながる可能性のある状況をデータベースに指摘することはできますか(まったく同じサーバー上でデータベースが動作し、接続が解除され、変更されず(少なくとも私は)、その後再接続できない)。
2つの問題があります。
2008R2
で、新しいサーバーは2012
です。したがって、@ sepupicが述べたように、2012
から2008R2
にデータベースをアタッチすることはできません。10Gbs
の制限を超えています何をすべきか:
SQL Server 2012
より上位のエディションのSQL Express
(またはそれ以上)にDBを接続します2008R2
バージョンを実行する必要がある場合)
- 実際に添付せずにmdfファイル内のスペースを解放する方法はありますか?
実際には必要ありません。私はそのような方法を知りません。
- または、新しい(フル)SqlServerに既に接続されているデータベースを取得し、サイズを縮小してからSQLExpressに接続することは可能でしょうか? (または、完全なSqlServerにアタッチすると、mdfファイルの形式がSqlExpressで使用できないように変更されますか?)
SQL Server 2012 Express
で作業する場合は、それを行うことができます。いいえ-形式は変更されません。