SQLSERVER 儲存過程輸出LOG檔案

2022-02-05 21:42:37 字數 2703 閱讀 6541

【名    稱】sqlserver用 ログ出力拡張ストアドプロシージャ(サンプル版)

【版    數】0.90

【動作環境】sqlserver

【動作確認】windows2003 server + sqlserver2000 ee sp3, windows2000 server + sqlserver2000 de sp3

【提供形式】zip形式圧縮ファイル

【制限事項】サンプル版につき2023年4月以降は使用できません(エラーになります)

------------

【種    別】期間制限付きサンプル版

【転    載】メールで事前連絡必須 [email protected]

------------

※※ 注意事項 ※※

拡張ストアドプロシージャの特性上、內部で例外エラー等が起きた場合、

sqlserver自體のプロセスが停止する危険性があります。

そのため、クリティカルな環境での使用をお考えの方は、テスト環境等で

十分なテストを行った上で本番システムへ組み込んでください。

本プログラムは、(連続100萬回書き込み x 同時50クライアント)の試験を數回行っておりますが、

サービスパックや周辺dllの狀況によっては、動作が変わる可能性もありますのでご注意ください。

システムの效能にもよりますが、大量のログがテーブルに溜まってきた場合、

書き込み速度が落ちる場合がありますので、適宜古いログを削除するジョブなどを設定する事を

お勧め致します。また、當然の事ですが、ログ書き込み後は、呼び出し元のトランザクションと

同期性、直列性がありませんので、ログ書き込みに対する処理等をお考えの場合はご注意ください。

●ファイル內容

① xp_log_output.dll    拡張ストアドプロシージャ本體

② addextendedproc.sql  拡張ストアドプロシージャ登入用sql

③ maketable.sql        ログ格納用テーブル作成sql

④ dropextendedproc.sql 拡張ストアドプロシージャ削除sql

⑤ droptable.sql        カウンタ格納用テーブル削除sql

⑥ readme.txt           このファイル

●機能概要

sqlserver內で実行中のトランザクションから分離して実行される

ログ出力用拡張ストアドプロシージャです。

トランザクションから分離されていますので下記の特徴があります。

① 呼び出し元のsqlが失敗してもロールバックされません。

② 1回毎のロジックが獨立していますのでロックがほとんど発生しません。

③ sqlserverのオンメモリ実行のため、非常に高速です。

④ ロールバックされませんので、トリガ処理との組み合わせで色々な自動処理も可能です。

特定のログ出力時にメール送信を行ったり、外部exeの起動などもできると思います。

●利用方法

① 接続先のデータベースに対して、sqlserverの動作しているコンピュータ上でodbc接続用dnsを作成

② 任意のデータベースで「maketable.sql」を実行し、テーブルを作成(テーブル名は変更できません)

③ sqlserverのbinフォルダに本體(xp_log_output.dll)をコピー

④ 「addextendedproc.sql」を実行し、拡張ストアドプロシージャとして登入する

●実行方法

xp_log_output 第1引數~第8引數(引數の省略、nullの指定はできません)

① 第1引數:varchar 128:dns名

② 第2引數:varchar 128:ログテーブルを作成したデータベース名

③ 第3引數:varchar 32 :出力ログ名稱

④ 第4引數:int        :ログ番號(自動インクリメントではありません)

⑤ 第5引數:int        :ログレベル

⑥ 第6引數:varchar 32 :実行者名(必要ない場合は、空文字を指定)

⑦ 第7引數:varchar 512:ログ①

⑧ 第8引數:varchar 512:ログ②

sql例:exec master..xp_log_output 'testdns','testdb','log001',1234,9,'testauth','処理開始','a001-990'

●削除方法

① 「dropextendedproc.sql」を実行

② sqlserverのbinフォルダから本體(xp_log_output.dll)を削除

③ 「droptable.sql」を実行し採番テーブルを削除

●免責事項

・本プログラムは期間限定のサンプルプログラムです。期間內は無料でご使用頂けます。

・期間制限なしのシェアウェア版は2023年1月頃公開予定です。

・アーカイブ形式でのみ再配布可能です。

・作者はプログラムの完全な動作を保證する物ではありません。

・本プログラムを使用した上で生じたいかなる損害についても、製作者は一切の責任を負いません。

・サポート義務は負いません。

・メールでご質問は受け付けますが、素早いレスポンスは期待しないでください。

・バグ修正は、できるだけ行いたいと思いますが、全てに対処できるわけではありません。

しかし、可能な限り良いプログラムは提供したいと思います。

sql server儲存過程

建立表的語句 create table student sno int primary key,sname nvarchar 30 sgentle nvarchar 2 sage int,sbirth smalldatetime,sdept nvarchar 30 drop table studen...

SQLSERVER儲存過程

sqlserver儲存過程使用說明書 引言首先介紹一下什麼是儲存過程 儲存過程就是將常用的或很複雜的工作,預先用 sql語句寫好並用乙個指定的名稱儲存起來,並且這樣的語句是放在資料庫中的,還可以根據條件執行不同 sql語句,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 ex...

SQL Server 儲存過程

儲存過程概念 儲存過程優點 儲存過程的介面 儲存過程的解析 編譯過程 儲存過程安全性 檢視儲存過程 加密 解密儲存過程 儲存過程概念 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集,經編譯後儲存在資料庫中。使用者通過指定儲存過程的名字並給出引數 帶參儲存過程 來執行...