.NET + SQL Server Tips
.NET Conf関西 2019
2019/10/19 SQLWorld お だ
自己紹介
織田 信亮(おだ しんすけ)
大阪で開発者しています
SQLWorld の代表です
http://odashinsuke.hatenablog.com/
Twitter:@shinsukeoda
デモ中心です
https://github.com/OdaShinsuke/dotnetconfkansai2019_sqlservertips
今日話すこと
接続文字列
SqlParameter
大量データ INSERT
勝手にリトライ処理?
DB の可搬性は?(DacFX)
接続文字列
同じDBに繋いでいるのに、
接続文字列が違うと…
コネクションプールが別物
TransactionScope 内で、Connection を
一つずつ開いても、分散トランザクショ
ン扱いに…
SqlParameter
手抜きしてると…
渡す string の長さで、似た様なクエリ
キャッシュが沢山出来る
(var)char と n(var)char での
convert_implicit
数値と文字型での convert_implicit
varchar に nvarchar を渡すと…
varchar に varchar を渡すと…
varchar に nvarchar を渡すと…
SQL Server 2012
文字列型の長さを指定しないと…
長さを指定せずに、2文字と3文字で呼び出すと…
長さを指定して、2文字と3文字で呼び出すと…
文字列型に数値を渡すと…
数値型に文字列を渡すと…
大量データ INSERT
使えるなら SqlBulkCopy
件数が増えるほどパフォーマンスは段違
い
INSERT しかないから、MERGE したいな
ら、一旦ワークテーブルとかに入れてそ
こから MERGE する
勝手にリトライ処理?
ConnectRetryCount
ConnectRetryInterval
Connection を Open した後の、
Command の実行で切断されてた時にリ
トライする設定
.NET Core だと上手く動いてないっぽい
ConnectRetryCount を 1以上にしても、1
の時と同じ感じ
DB の可搬性は?(DacFX)
DacFX
Data-tier Application Framework
https://docs.microsoft.com/ja-jp/sql/relational-
databases/data-tier-applications/data-tier-
applications?view=sql-server-2017
.NET Core は未だ preview
.bacpac 作ったり、取り込んだり
Q&A

Dot net+sql server tips