今どきの企業なら必ず有るのがSQLサーバ。
御社SQLサーバの目覚めはどうですか!?
形部商事のSQLは目覚めがすごく悪いんです!
朝イチ、サーバ起動直後からの数分間が特に遅い!
システム屋さん曰く
朝イチはキャッシュが空っぽ!
SQLサーバへの問い合わせを何度かすれば
キャッシュがたまりスピードアップします。
この対策用にシステム屋さんが作ってくれたのが「GoodMoring.exe」
SQLサーバへランダム参照しキャッシュを貯めるプログラム。
実行すると受注取込みが少しスピードアップしたかな!?
売上入力は遅いまま・・・・
という事で、自分でMS-Accessプログラム「GoodMorning4SQL.accdb」を作ってみました。
そして今日、朝イチでテスト!
やってることは超シンプル
キャッシュに貯めておきたいデータに
SELECT * FROM WHERE すればいいんでしょ!
ODBC接続の「商品マスタ」「得意先マスタ」「受注テーブル」「売上テーブル」を開き
対象レコードをDebug.Printでイミディエントウィンドに意味なく書かせるだけ!
これでスピードアップするかな?
朝イチはSQLサーバの反応が悪く最初の2回はTimeoutエラー!!!
- 現状把握:朝イチ、受注データ(5行分)を呼び出すのに1分超!(スゲー遅い)
- 実行:最初2回の実行はTimeoutエラー
- 実行:3回目で、4分後に正常終了。
- 効果確認:受注データ(8行分)を呼び出すと3秒。早い!
僕の「GoodMoring for SQL」効果あるみたい
余談ですが、「GoofMorning4SQL.accdb」のヒントになったのが、これ
ハンディーターミナルアプリ用「マスタデータbulk importファイル生成」プログラム。
SQLマスターファイル生成は、とても複雑で煩雑!
SQLサーバへ接続
- 最新単品別売上データのBulk importファイルを生成
- 最新商品マスタのBulk importファイルを生成。
- 最新得意先マスタのBulk importファイルを生成。
- 全ファイルをmax500レコードで小分保存後、UTF-8 Encode。
- zipにしてFTP
max500レコードはSQLiteの仕様
全ファイル約800個が完成するのに15分くらいかかります
よく考えると、これ実行すれば、
必要データ、キャッシュに貯まるじゃん!
試しに朝イチ実行すると、SQLサーバがスピードアップ!
それからの数ヶ月、毎朝これを実行してます。
でも、各ステップ用にボタンがたくさんあり、全部のボタンを押すのが超面倒!
「GoofMorning4SQL.accdb」は、マスタファイル生成の仕組みを全部削除。
ワンボタンで、単純に4つのテーブルを参照するだけ!
明日から、これを使ってみよう
たくさん押してたボタンが1つで済む
Windows10に、スタートアップフォルダって残っているのかな?
accdbファイルってwindows「サービス」に登録出来たっけ?
最初の2、3度は必ずエラーになる。
指定時間ではなく起動後プラス1分・3分・5分・7分、間隔を開けて複数回の自動実行って設定出来るんだろうか?