11/23(土) 第11回 関西DB勉強会 withさくらクラブ でお話しします #dbkan

久しぶりに 関西DB勉強会やります~!
第11回 関西DB勉強会 withさくらクラブ - connpass
今回はさくらインターネット様の会場をお借りして、ハンズオン中心のみんなで手を動かして体験しよう~みたいな感じです。
MySQLPostgreSQLSQL Server と3つの DBのセッションがありますので、ご都合の良い方はぜひご参加を~。

Application Insights の紹介 参考資料 #azuretechlove

Application Insights 紹介

Azure Tech Lab #5 - てらだよしおまつり リターンズ。 の参考資料

Application Insights 概要

https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/app-insights-overview

コードベースの監視

依存関係

Visual Studio ローカル監視

https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/visual-studio

browserTimgings

https://github.com/microsoft/ApplicationInsights-JS/blob/2e2d52f58a9bdbb3fc1fbf1c6b3bd0f0d6732e50/extensions/applicationinsights-analytics-js/src/JavaScriptSDK/Telemetry/PageViewPerformanceManager.ts#L29-L56

10/31(木) Azure Tech Lab #5 - てらだよしおまつり リターンズ。 で話しします

募集サイトはこちら
Azure Tech Lab #5 - てらだよしおまつり リターンズ。 - connpass

セキュリティ や コンテナ、Kubernetes のお話しがあるなかで、
私は Application Insights を簡単に紹介する予定です。
Azure Application Insights とは何か | Microsoft Docs

まだ空きがありますので時間のある方は是非ご参加を~。

.NET Conf関西 2019 で .NET + SQL Server Tips というお題で話してきました

.NET Conf関西 2019 - connpass

資料はこちらですが、デモ中心なので資料だけ見てもアレかも。

主に System(Microsoft).Data.Sqlclient 名前空間のクラスを使った話しが主なので、興味ない方も居られたと思います。
が、半分くらいの方は紹介した中で知らなかった事があったようなので良かったかな。

.NET Core の SqlConnection の ConnectRetryCount ちゃんと動いてない?

検証コード
.NET Core SqlConnection ConnectRetryCount not work? · GitHub

.NET Framework 4.7.2 + System.Data.SqlClient 4.7.0 と
.NET Core 3.0 + System.Data.SqlClient 4.7.0 で
同じコード動かしたけど、例外が発生する時間が違う。。
なんやろ?

2019/11/16 追記
Fix connection resiliency check by David-Engel · Pull Request #310 · dotnet/SqlClient · GitHub で修正されました。

.NET Conf関西 2019 で話しします

来週 10/19(土) に、.NET Conf関西 2019 - connpass
.NET + SQL Server Tips というタイトルでお話しします。

Tips なので既に知ってるという方も居られるかもしれませんが、
何人の方にはへーっと思って頂ければと思っています。

満席間近みたいなので、参加しようと思っている方はお早めに~。

varchar 列に nvarchar 渡しても convert_implicit しなくなってた

varchar と nvarchar の列持つテーブルにそれぞれ index つけて適当にデータ突っ込んで試したら、動作変わってた。

create table [Hoge] (
  [var] varchar(20) not null,
  [nvar] nvarchar(20) not null
)
create index [Hoge_var] on [Hoge] ([var])
create index [Hoge_nvar] on [Hoge] ([nvar])

;
with cte as (select 1 as cnt union all select cnt + 1 from cte where cnt < 100000)
insert into [Hoge] ([var], [nvar])
select cnt, 100000-cnt from cte option (MAXRECURSION 0)

Azure SQL DB
(Microsoft SQL Azure (RTM) - 12.0.2000.8)

declare @nvar nvarchar(20) = N'111'
declare @var varchar(20) = '111'


select * from [Hoge] where [var] = @nvar
select * from [Hoge] where [nvar] = @nvar
select * from [Hoge] where [var] = @var
select * from [Hoge] where [nvar] = @var

f:id:odashinsuke:20191006113548j:plain

一番上のプランの動作変わってんなーってとこ。
一番上は、昔は [var] 列が convert_implicit で nvarchar になってテーブルスキャンになってたけど、実行プランの xml みたら、GetRangeThroughConvert 使って範囲検索になってた。

SQL Server 2012 の環境あったから、同じクエリ試したけどやっぱ変わってた。
(Microsoft SQL Server 2012 - 11.0.5569.0 (X64))
f:id:odashinsuke:20191006115026p:plain

どのバージョンから変わったのかまでは調べてないけど、たまには色々試してみないとダメやね~。