優先順位を付けた重複データ1件を取得という要件があったのでいろいろ考え抜いて作ってみました。パフォーマンスは一切考えてないのでそれはのちの改善点として。
タグ: SQL Server
【Entity Framework Core Tips】オプティミスティック同時実行制御を行うことによって複数アクセスによる更新で後勝ちによるデータ損失を防ぐ (SQL Server)
Web アプリケーションなど複数のアクセスによってデータが更新される環境において意図しないデータの後勝ち更新が行われてしまうことを防ぎます。
【Entity Framework Core Tips】Entity Framework Core を使用して SQL Server にアクセスする準備を行う (データベースファースト)
Entity Framework Core を使用することにより SQL を記述しなくても SQL Server のレコードを操作できるようになります。
【SQL Server Tips】SQL Server 2022 をインストールする (Windows 環境)
SQL Server 2022 を Windows 環境にインストールする手順について説明しています。
SQL Server の Tips を2本公開しました
環境面においていまいち知識が中途半端だったのでいくつか調べて Tips としてみました。
SQL Server の Service Broker が正常に動作しない場合の対処法
Service Broker にメッセージやキューなどを登録したにもかかわらず、正常に処理されない場合の確認と対処方法について記載します。ただ、実際に動作しない原因については多岐にわたる場合がありますので、ここではその一例としてとらえておいてください。
Service Broker 自体が有効かどうか確認
select name, is_broker_enabled from sys.databases
Service Broker を有効にする
alter database [データベース名] set enable_broker with rollback immediate
なんのエラーが発生しているかを確認
最後の列にエラーの理由が載っています。
select * from sys.transmission_queue order by enqueue_time desc
データベースの所有者が正しく設定されているかを確認(null なら設定されていない)
select d.name as 'database', s.name as 'owner'
from sys.databases d
left join sys.server_principals s
on d.owner_sid = s.sid;
設定されていなければデータベースを右クリックしてプロパティから所有者を設定 (sa とか Administrator とか本来設定されるべきもの)
SQL Server のセキュリティ-ログインに設定しているユーザーと、対象データベースのユーザーが一致しているか
他のサーバーにあったデータベースを復元すると一致していないことが多い
]]>[SSRS] レポートマネージャーでレポートがサブスクリプションによって自動エクスポートされたときのログを確認する
メモ書きです。
環境
- SQL Server : SQL Server 2008 R2
内容
ログを確認すると、エクスポートされたレポートの種類や、エクスポートにかかった時間、結果、出力サイズ、行数などが参照できます。
ログを確認するには SQL Server Reporting Services をインストールした時に作成されるデータベース「ReportServer」のテーブルを参照します。
以下の SQL を実行するとログの内容を確認できます。
use [ReportServer];
select
B.[Path] -- レポートのパスと名前
,A.[LogEntryId]
,A.[InstanceName] -- レポートサーバーインスタンス名
,A.[ReportID]
,A.[UserName] -- 実行ユーザー
,A.[ExecutionId]
,A.[RequestType]
,A.[Format]
,A.[Parameters] -- レポートの出力に指定したパラメーター
,A.[ReportAction]
,A.[TimeStart] -- 出力を開始した時間
,A.[TimeEnd] -- 出力が完了した時間
,A.[TimeDataRetrieval] -- データの取得にかかった時間 (単位はミリ秒)
,A.[TimeProcessing] -- レポートの処理にかかった時間 (単位はミリ秒)
,A.[TimeRendering] -- レポートの表示にかかった時間 (単位はミリ秒)
,A.[Source]
,A.[Status] -- rsSuccess(成功) またはエラー コード
,A.[ByteCount] -- レポートのファイルサイズ
,A.[RowCount] -- クエリ結果の行数
from [ExecutionLogStorage] A
inner join [Catalog] B
on B.[ItemID] = A.[ReportID]
where convert(varchar(8), A.[TimeStart], 112) = '20151104' -- いつのデータを取得したいか、などの条件
order by A.[LogEntryId] desc;
各パラメータの詳しい情報などは以下の URL 先を参照してください。SharePoint について書かれていますが、内部では Reporting Service を使っているので大体同じです。
]]>今年書いた TIps まとめ
今年に入ってから書いた Tips をまとめてみました。一覧にするとジャンルあまりまとまってませんね…。
- Windows Update が実行できなくなる現象を修正する - Windows
- 効率よく戦果を稼ぐテクニック (5-4 その1) - ゲーム
- IDENTITY が設定されている列に INSERT を行う - T-SQL
- XML コメントを改行して表示させるには - Visual Studio
- 特定のアクションが呼ばれる前にリダイレクトするには - ASP.NET
- データベースに作成されているテーブル名と列名の一覧を取得する - T-SQL
- ウォークマン「NW-A10シリーズ」で本体から曲を直接削除するには - メディア
- 型付 DataSet の TableAdapter の基本クラスを変更する - ADO.NET
- 積の集計を行う - T-SQL
]]>
Windows 8.1 や Windows Server 2012 R2 で「SQL Server 構成マネージャー」を起動する方法
以前の OS では「SQL Server 構成マネージャー」はスタートメニューの SQL Server 関連のフォルダの中にショートカットとして配置されていたため、そこから起動することができたのですが、Windows 8.1 や Windows Server 2012 R2 に SQL Server をインストールするとなぜか SQL Server 構成マネージャーがスタートメニューのどこにも見当たらなくなります。(もしかしたら Windows8, Windows Server 2012 もかもしれません)
SQL Server 構成マネージャーを起動(使う)には以下の方法を行います。
スタートボタンを右クリックして「コンピューターの管理」を選択。
「コンピューターの管理」⇒「サービスとアプリケーション」の中に SQL Server 構成マネージャーがあります。
]]>Tips 更新
最近また忙しかったりしてブログにも Twitter にも書き込んでいない状態でしたが少し落ち着いてきたので久々に書き込みます。
sorceryforce.net の方で Tips を4つほど公開しました。SQL Server 関連ですが、大体はインストールとかセットアップとかそんなところの内容になってます。しかも CTP 版や Preview 版なのであんまり Tips に載せるべきものでもないような気がしますが (^^;)
- Office 365 で Power BI を使用する
- SQL Server 2014 CTP2 をインストールする
- SQL Server 2014 CTP2 対応版 SSIS 構築環境をインストールする
- SSIS で Unicode 文字列を Shift-JIS の文字コードとしてテキストファイルに出力する
後、ページ一覧をグループ分けして表示できるように作りました。前まではとにかくページをずらずら並べているだけだったのでちょっと見にくかったかもしれません。こういうのって HTML で直書きすると一瞬で終わるのにプログラムで作ろうとするとかなり手間なんですよね…。
]]>