日々学習〜人の役に立てるITエンジニアを目指して〜

ITエンジニアが日々学んだ事を書き記します

2013-01-01から1年間の記事一覧

インデックスについて

稼動しているシステムのあるテーブルのデータ量が多くなり、 データ取得に時間がかかっていたので、 インデックスを追加して改善を行いました。 分かりやすいページだったのでメモしておきます。 http://www.atmarkit.co.jp/ait/articles/0501/18/news097.ht…

テーブルの行を編集する設定

SQLServerのオブジェクトエクスプローラからテーブルを開く際、"上位○○○行の編集"となっていて、全ての行を編集する事が出来ない。 初期設定がそのようになっているため、変更したい場合は ツール→オプション→SQLServerオブジェクトエクスプローラの 上位<n…

プロファイラで負荷がかかっているストアドを調査する

データ抽出処理で異常に時間がかかるときなどは、 プロファイラで確認すると原因がさぐれる。 プロファイラ上のCPU,Reads,Writes,Durationの各項目の 数値が高い場合は、そのストアドに原因があるかもしれない。 参考URL Microsoft TechNet ライブラリより h…

インデックスの再構築

大量のデータの削除、追加を繰り返し行うと、データの断片化が起きる。 稼動中のシステムでデータ読み込み時に予期せぬエラーが発生したが、 断片化が理由だった。 インデックスの再構築を行うことで解決できた。 オブジェクトエクスプローラでテーブル→イン…

クエリの結果をエクセルに貼りつけるときに列ヘッダーも貼りつける

クエリの結果を選択し、右クリックでヘッダーつきでコピーをすれば行えるが、設定することで自動でヘッダーが貼り付くようになる。 ツール→オプション→クエリ結果→SQLServer→結果をグリッドに表示→結果のコピーまたは保存時に列ヘッダーを含めるのチェックボ…

XPのPCからWindows7の共有フォルダにアクセスできない

アクセス数が一定を超えると起こる現象(どういったときに起こるかは不明) コントロールパネル→サービスの"Server"を再起動すると解決する。

空の文字列を0に変換する

VB6だとval関数を使っていたが、 .netではparseを使用した方が良いということで。 ParseとTryParseがある。 Integer.Parse("100") ※ただし、空を0に変換しようとするとエラーが発生するTryParseは変換が正常に終了したかどうかを返すDim result As Boolean =…

SQLの文字列中にシングルクォートがある場合の対応方法

SQL

SQLの文字列中にシングルクォートがある場合 そのままだと構文エラーになる 例) select * from TabeleA where Field1 = 'a'b' →シングルクォートとシングルクォートの間が文字列と認識され、 後ろのb'が無効な文字列となり構文エラーが発生する <対応方法>…

ストアド内でprintを使用するときの注意点

ストアド内でprint文で変数の値を出力させたいとき、 変数の中身のバイト数によっては切り詰められてしまいます。 以下マイクロソフトMSDNより引用 (http://msdn.microsoft.com/ja-jp/library/ms176047.aspx) メッセージ文字列は、Unicode 以外の文字列の場…

SQL実行時のデータ取得速度

SQL

SQL実行時のデータ取得速度 あるデータを日付の期間で取得する際、 期間を1日にした場合と2日にした場合で倍以上の時間がかかっていた。 例) 2013/05/13~2013/05/13のデータを取得・・・1秒 2013/05/13~2013/05/14のデータを取得・・・1分 原因を探ったと…

年度の切り替わり時

システムに2つの年度を持っている。 (1つは6月~5月、もう1つは4月~3月。) 4月になったときに領収書の発行番号の切り替えが行われるはずが、 もう一方の年度(6月~5月)を見ていたため、切り替わらなかった。 年度切り替え時に初めて動く処理は テストを見…