ブログで予告していた飲み会を実施した。少人数だったので予約なしで飛び込み。集まった人たちですっかり気に入った「思い出横町」へ。今回入った店は、1階は狭かったが、通された2階は座敷もあり広かった。それぞれの階に調理場があり、料理が遅い、ということもなかった。途中、仕事で遅れた人を迎えに行き、全員集合。

特徴は、生ビールが大きい!こと。

どうでもいい世間話をしていたが、集まったのは私以外すべて小さいながら社長業をされており、社員の集め方、自分たちの向かう方向など、語っていた。さすが社長。

コンピュータ業界は技術分野が多岐にわたることもあり、すべてを一社でこなすのはなかなか困難である。やはり得意分野をもったところが連携し、かつ、間を埋めるようなことが必要なのではないかと思っていた。
そのあたり、参加した方も同様のようだったので「飲み会だけではない勉強会」をやってみてはどうかと思っている。やり方としてはウェブクリエートシンジケート(http://w-syndicate.info/)みたいな感じになるか。

ここからは私が勝手に考えていること。

----
時間も13時から3、4時間。理想は17時に居酒屋で懇親会。講演料謝礼なしだが、資料代は考える。講師の資料代と会場費(どこか場所を提供してくれるところがあればそちらを利用)を頭割りして参加費とする。
話題は、だいたいなんでもよし。自社のマーケティング、宣伝広告、技術的な深いこと、など。その場で終わるのではなく、資料のうち公開してよいものや当日のだいたいの内容、質疑応答など、問題のない範囲でWebにて公開し、活用できるようにする。

年4回程度、定期的に開催する。

----

こんなところかな。


個人的にやってみたいのは、技術分野だと以下のようなもの 
■データベース関連
 (データベースの更新はしたことがあるけれど、それ以上のことを行う技術者は意外と少ないので)
  ・インストールと使い方 実践 ~ SQL Server Express 編
  ・バックアップとリストア 実践 ~ SQL Server 編
  ・スケジュールの使い方 実践 ~ SQL Server 編
■VM関連
 (VMはこれから爆発的に普及すると考えている。その先駆として)
  ・無料で使える VM Ware 3製品 それぞれの特徴と使い分け
  ・VM Ware Server インストールと使い方
  ・VM Ware での仮想化 その構成方法とメリット
■VBA関連
 (これはあまりなじまないか。)
  ・クラスモジュールのメリットと使い方 概要
  ・クラスモジュールでデータベースアクセス そのメリット 実践編
  ・クラスモジュールで共通部品 そのメリット 実践編
  ・標準モジュールをクラスモジュール化 その方法 実践編
  ・クラスモジュール化による保守性向上 

といったところか。



SQL Server 自体の問題ではなく、プログラミングの問題(ADO.netの使い方の問題)だと思うが、SQL Server がメモリをどんどん喰っていく。SQL Server Management Studio でDBのバックアップやコピーなどをすると、ちょっとづつメモリを喰っていき、終わっても、SQL Server Management Studio を終了させても、メモリを解放しない。
余談だが、ADO.netはADOなんかと比べてメモリリークしやすい。設計、製造工程で意識しておかないとこのような自体になりやすい。

そいつは資源の無駄遣いであり、メモリを解放してやる必要がある。

Webシステムなどではメンテ画面を出す等の処置が必要だが、一番簡単な方法は「DBMSの再起動」である。これでメモリががっつりと解放される。

ただ、こればかりはSQL Server の Agent から操作するわけにもいかない。手作業でも良いが、定期的に自動再起動するようにするのがいいだろう。

簡単なのはDOSコマンド。

net stop MSSQLSERVER
net start MSSQLSERVER

を実行すればよい。これをバッチファイル化して、ATコマンドとかでスケジューリングするといいだろう。


ただし、SQL Server Agent を使っているときは話は別だ。SQL Server Agent は SQL Server が稼働していることが前提である。よって、落とすときは SQL Server より先に、起動時は SQL Server より後に、コントロールをする必要がある。

net stop SQLServerAgent
net stop MSSQLSERVER
net start MSSQLSERVER
net start SQLServerAgent

てな具合である。社内のLAN内にあるようなものなら、週に一度、もしくは月に一度くらいはこれを実行させた方がいいかもしれない。
SQL Server には アタッチ/デタッチ という機能がある。実は、先日まで知らなかった。

どういうものかというと、SQL Server が管理しているデータベースをデタッチすると、そのSQL Server の管理下から外れる。アタッチすると、SQL Server の管理下に属する。
あるサーバーのSQL Server で稼働しているデータベースをデタッチし、実体である mdf/ldfファイルをコピーし、別のサーバーのSQL Server でアタッチすれば、そのまんま使える。

これまで私は master とかでデータベースを管理しているものだと信じ込んでいた。が、こういう事が可能である、ということは、各データベース内に管理情報を持っている、ということになる。

こういうことができるなら、といろいろと運用上便利に使えることがある。例えば、データベースのフルバックアップをコピーし持ち運ぶには容量的に厳しい場合、テンポラリのデータベースを作り、必要なテーブルだけコピーしてデタッチする。そうすれば持ち運び可能なサイズにできる可能性も高い。

ただ、バージョン間での互換はないようだ。



もう一つおまけ。Visual Studio などの言語からは、SQL Server のデータベースに直接アクセスできるようだ。定義ファイルや参照ファイルをDBにしたい場合などには便利だろう。