解決策を見つけようとしている日を検索しましたが見つかりませんでしたので、コミュニティに連絡することにしました。私はWindowsプログラマです。私はAS400のDBAプログラミングとコマンドに精通していません。AS400 IBM SQL Navで作成されたDB2ビュー使用中のファイルをロックする
私はいくつかのビューを作成しました。これは、単に選択された本番表のステートメントです。それらは、私がデータベースのグリーン画面から直接行うためにAS400にはあまり精通していないので、ほとんどのものに使用したいIBM SQLナビゲータで作成されました。私は私が作った意見を持って彼のためにいくつかの問題を引き起こしていたと私はディレクターからの苦情を受けた。彼は私の意見はテーブルをロックしていると述べており、AS400は使用中にファイルを再編成することはできません。
彼はDBAであれば、私がやったことを私がすることを許しませんでした。私は何年もの間に何千ものビューを作成したが、SQL ServerはAS400ではないという点で紛失している。私がSQLビューを作成することを許可していないのは、データベース内でこの問題を処理するのにあまり経験がない人のようです。
私は、SQLナビゲータでビューを作成することで、re-orgsなどのテーブルのロックを防ぐためのいくつかの基本的な助けを求めています。 iSeries SQLナビゲーターを使用してビューを作成し、ビューの作成後にそのビューの許可を調整しました。私は間違ったことをしましたが、ロックを防ぐために何かする必要がありますか?
更新:ビューをクエリしてExcelレポートにスローして電子メールで送信するASP.NETアプリケーションがあります。そのアプリケーションは、ジョブが完了したときに接続を閉じます。
ディレクターがDBAの場合は、おそらくテーブルを再編成する必要はありません。必要でないようにテーブルを定義することができます。 RGZPFMコマンドは、ALWCANCEL(* YES)とLOCK(* EXCLRD)またはLOCK(* SHRUPD)のいずれかがコマンド・パラメーターとして指定されていない限り、**排他的**使用が必要です。しかし、ALWCANCEL(* YES)はテーブルをジャーナルにする必要があり、ディレクターはDBAではないので、そうではないと思います。あなたがテーブルからのみ読んでいるのなら、VIEWは必要ありません。なぜあなたはそれらを作りましたか? – user2338816
複数のクエリを組み合わせたクエリが複雑なため、ビューが作成されました。むしろ、これらのクエリをハードコーディングし、アプリケーション内の複数のクエリの結果を読み込むことでプログラムを膨らませることで、ビューは最適なソリューションと最速でした。ビューはうまくいく。私は、ロックをチェックするために提供されたコマンドを使用し、それらのビューに対するオープンな接続が期待どおりに閉じられない問題があるかどうかを確認します。 – Mike
十分な理由があります。もちろん、ロックはいずれの方法でも同じでしょう。あなたのディレクターの苦情は、排他的アクセスが必要な時に照会が実行されるということです。 VIEWを使用するかどうかは関係ありません。 VIEWを作成するデータベース権限を持っている場合は、差異(ロック)の違いがないため、クレームの根拠はありません。 – user2338816