SlideShare ist ein Scribd-Unternehmen logo
1 von 34
SQLWorld を支える技術 
SQLWorld★大阪#27 
2014/10/18 SQLWorld おだ
自己紹介 
織田信亮(おだしんすけ) 
大阪で開発者しています 
SQLWorld の代表です 
http://odashinsuke.hatenablog.com/ 
Twitter:@shinsukeoda
SQLWorld って? 
SQL Server を中心にDB の勉強会やってます 
正規化/モデリング, NoSQL とかもやってます 
最近SQL を書くハンズオンやりはじめました 
提示されたお題に対して、SQL を書いてみる
DB インストールしてないとダメなの? 
DB のインストール必要無しです 
ブラウザがあれば参加出来ます 
やろうと思えば、オンラインでも可 
http://tsqlrunner.azurewebsites.net/
裏で使ってるやつら 
Windows Azure Web Sites 
SQL Database (旧SQL Azure) 
ASP.NET MVC 4 
Knockout.js (JS MVVM FW) 
Signal R (Realtime Web for .NET) 
SQL Server ScriptDom (T-SQL Parser) 
Unity (DI の方ね) 
Dapper (Micro ORM) 
html-query-plan (execution plan to html)
裏で使ってるやつら 
Windows Azure Web Sites 
SQL Database (旧SQL Azure) 
ASP.NET MVC 4 
Knockout.js (JS MVVM FW) 
Signal R (Realtime Web for .NET) 
SQL Server ScriptDom (T-SQL Parser) 
Unity (DI の方ね) 
Dapper (Micro ORM) 
html-query-plan (execution plan to html)
Windows Azure Web Sites 
無料でも使える 
クレカ無し60分体験も可能 
サイトのホスト先 
SCM 経由でデプロイ 
GitHub/BitBucket/DropBox/TFS/サイト 
ローカル…
ASP.NET MVC 4 
一番新しいASP.NET MVC 
Web API も使ってます
Knockout.js 
Binding の用途で利用してます 
回答結果画面で利用 
使いやすいので便利 
他のライブラリに依存しない 
部分的に取り入れることが出来る
Signal R 
流行りの双方向通信を行えるライブラリ 
実行環境(Client 含む)によって、通信方法 
が切り替える 
今回は双方向っていうよりは、Server 
Push メインで使ってます
Unity 
P&P 製のDI コンテナ 
特に必要無かったけど、勉強がてらに 
コード/.config どちらでも設定可能 
コンテナなので、インスタンスのライフサイク 
ル管理も可能 
正直この規模なら要らない
Dapper 
Micro ORM 
クエリの結果とクラスのマッピングだけ 
個人的にはこれ位で調度良い 
EF (Entity Framework) とかちょっと… 
Java でもCommons DB Utils/Seasar 
Doma とか良く使ってる
SQL Database (旧SQL Azure) 
Azure のSQL Server 
Azure Web Sites にも20MB分付いてくる 
SQL Server フル機能は使えないけど、今回 
の用途では無問題! 
IaaS にSQL Server を載せるやつとは違う
何回か開催していると 
問題が…
テーブル名が被ることが出てくる 
スキーマ(Schema) を分けることで解消 
クエリにスキーマ指定させるのイケてない 
select * from [20140805].[テーブル] 
開催回毎にユーザーを作成し「既定のス 
キーマ」を指定する 
アプリ側は同じクエリを投げても、ユー 
ザーによって見るテーブルが変わる
テーブル定義の取得 
T-SQL で取得します 
カタログビュー 
sys.~ 
情報スキーマビュー 
INFORMATION_SCHEMA.~ 
内部的にはカタログビュー使ってます 
やりやすい方を使えば良いです。
余計なことを 
させたくない!
自由にクエリを書けることの弊害 
DROP TABLE されたらどうするん? 
DDL 系の操作 
データの追加/変更/削除 
権限(やロール)の設定で対応 
GRANT SELECT / DENY ~ 
ロールの場合はdb_datareader やカスタ 
ム作成したロール
余計なことを 
させたくない! 
その2
リソースを食い尽くす嫌なやつ 
フロー制御言語を使った嫌がらせ 
WHILE 無限ループ 
WAITFOR 長時間ブロック 
CTE(共通テーブル式) を使った無限再帰 
クエリ 
SELECT なので権限云々では防げない 
例:今から毎日分の日付を延々と返すクエリ 
with [CTE] ( [日付] ) as ( 
select getdate() union all select dateadd(d, 1, [日付]) from [CTE] 
) 
select * from [CTE] option (maxrecursion 0)
SQL Server 側では難しそう…
SQL Server ScriptDom 
.NET から使えるT-SQL のParser / 
Generator 
SQL Server Feature Pack からインス 
トール 
SQL Server 2008 位からあるようです 
2008 当時と2012/2014 では名前空間の 
構成が違うので注意
Parser/Generator 
各バージョン毎のParser/Generator 
80(2000)/90/100/110/120(2014) 
新しい構文は古いParser ではエラーになる 
Azure SQL Database 用はありません! 
Generator である程度は書式整形出来る
Parser を使って… 
複数バッチ/複文をNG 
SELECT でないとNG 
MAX RECURSION を指定してるとNG 
権限では防げないような物でも大体OK!
ScriptDom をどこで使うか 
ビルド時の.sql 検証 
構文エラー/規約違反 
クエリの書式統一 
クエリの動的生成 
使ってみたらわかるけど、結構面倒で非現 
実的…
おまけ 
SQL Database で対応しているか調べる 
Visitor を作ってましたが… 
ドキュメント(MSDN) と実環境とでちょい 
ちょい乖離が… 
進化のスピード早いし、ドキュメントが追 
い付かないのもしゃーない 
結局SQL Database で動かしてみないと判 
らん
SQL Database に投げて確認する 
オブジェクト(テーブルとか) が無くても 
とりあえずクエリ投げてOK 
サポートしてないよってエラーが返ってき 
たら未サポート 
オブジェクトが無いよって返ってきたらサ 
ポートされてる
どのクエリが良いのか比べたい! 
テーブルも多くて3個、データ数も2桁 
インデックスもクラスタ化(PK)のみ 
速度を比較しても… 
比較は難しい感 
あえて可読性くらい?
実行プラン出してみた 
実行プランはXML 
オプション指定すると、クエリで取れる 
SET SHOWPLAN_XML ON 
SET SHOWPLAN_XML ON 
GO 
select * from ~ 
GO 
SET SHOWPLAN_XML OFF
SqlCommand で投げる場合 
GO が使えない 
GO はT-SQL ではない 
SSMS/sqlcmd 等で認識されるコマンド 
Execute を分けて実行 
using (var conn = new SqlConnection(ConnStr)) 
using (var cmd = new SqlCommand(@"SET SHOWPLAN_XML ON", conn)) { 
conn.Open(); 
cmd.ExecuteNonQuery(); 
cmd.CommandText = "select * from [MemTable] where [Id] <= 100"; 
File.WriteAllText("Plan.sqlplan", cmd.ExecuteScalar() as string); 
}
Html-query-plan 
http://code.google.com/p/html-query-plan/ 
XML => XSLT 経由でHTML に変換 
JavaScript + CSS も使ってます 
サンプル通りの使い方でほぼOK 
C# 側はXslCompiledTransform でOK 
実行プランの線が表示されてないのは未調 
査。。
まとめ 
Azure Web Sites + 20MB SQLDB なら 
無料! 
色んなの使って動いてます 
他にも面白そうで使えそうなのあれば教 
えてください 
勉強会で使う問題も募集中!

Weitere ähnliche Inhalte

Was ist angesagt?

LibreOffice Base をSQLite のフロントエンドにしてみよう
LibreOffice Base をSQLite のフロントエンドにしてみようLibreOffice Base をSQLite のフロントエンドにしてみよう
LibreOffice Base をSQLite のフロントエンドにしてみよう78tch
 
COD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリング
COD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリングCOD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリング
COD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリングMasayuki Ozawa
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しInsight Technology, Inc.
 
Glance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみたGlance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみたharubelle
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のきYuto Suzuki
 
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするプロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするShunji Konishi
 
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5Takuya Mukohira
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方suno88
 
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所Koji Nakamura
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたadachij2002
 
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~Ryuta Otaki
 
activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介Kevin Toyoda
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤Yoshinori Matsunobu
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニングCraft works
 
JAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンJAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンKana SUZUKI
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何Kana SUZUKI
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06Mikiya Okuno
 
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンスHidenori Ishii
 
[LT] T sql の parse と generator
[LT] T sql の parse と generator[LT] T sql の parse と generator
[LT] T sql の parse と generatorOda Shinsuke
 

Was ist angesagt? (20)

LibreOffice Base をSQLite のフロントエンドにしてみよう
LibreOffice Base をSQLite のフロントエンドにしてみようLibreOffice Base をSQLite のフロントエンドにしてみよう
LibreOffice Base をSQLite のフロントエンドにしてみよう
 
COD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリング
COD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリングCOD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリング
COD2012 C3 : SQL Server 2012で振り返る、SQLOSのスレッド スケジューリング
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話し
 
Glance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみたGlance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみた
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のき
 
WindowsでMySQL入門
WindowsでMySQL入門WindowsでMySQL入門
WindowsでMySQL入門
 
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするプロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
 
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 5
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方
 
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
 
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみたHDPをWindowsで動かしてみた
HDPをWindowsで動かしてみた
 
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
ココが違うよEC2 ~オンプレミスVMとの徹底⽐比較~
 
activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介activerecord-oracle_enhanced-adapterのご紹介
activerecord-oracle_enhanced-adapterのご紹介
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニング
 
JAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオンJAZUG女子部 第2回勉強会 ハンズオン
JAZUG女子部 第2回勉強会 ハンズオン
 
Windows azureって何
Windows azureって何Windows azureって何
Windows azureって何
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
 
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
 
[LT] T sql の parse と generator
[LT] T sql の parse と generator[LT] T sql の parse と generator
[LT] T sql の parse と generator
 

Ähnlich wie Sql world を支える技術

Sql database でも使えるほにゃらら
Sql database でも使えるほにゃららSql database でも使えるほにゃらら
Sql database でも使えるほにゃららOda Shinsuke
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術Oda Shinsuke
 
Let s database_testing
Let s database_testingLet s database_testing
Let s database_testingYuji Shimada
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Oda Shinsuke
 
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Oda Shinsuke
 
Sql azure知ってますか?改訂版
Sql azure知ってますか?改訂版Sql azure知ってますか?改訂版
Sql azure知ってますか?改訂版Oda Shinsuke
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介Oda Shinsuke
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with DockerOshitari_kochi
 
T sql 振り返り
T sql 振り返りT sql 振り返り
T sql 振り返りOda Shinsuke
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generatorOda Shinsuke
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよkumake
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?Masayuki Ozawa
 
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜Michitoshi Yoshida
 
今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよ今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよKeisuke Oohata
 
Windows Azure BootCamp - SQL Azure
Windows Azure BootCamp - SQL AzureWindows Azure BootCamp - SQL Azure
Windows Azure BootCamp - SQL Azure貴仁 大和屋
 
PerlとSQLのいろいろ
PerlとSQLのいろいろPerlとSQLのいろいろ
PerlとSQLのいろいろTakuya Tsuchida
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば貴仁 大和屋
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
Windows Azure and PowerShell DSC
Windows Azure and PowerShell DSCWindows Azure and PowerShell DSC
Windows Azure and PowerShell DSCKazuki Takai
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...Insight Technology, Inc.
 

Ähnlich wie Sql world を支える技術 (20)

Sql database でも使えるほにゃらら
Sql database でも使えるほにゃららSql database でも使えるほにゃらら
Sql database でも使えるほにゃらら
 
Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
 
Let s database_testing
Let s database_testingLet s database_testing
Let s database_testing
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
 
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
 
Sql azure知ってますか?改訂版
Sql azure知ってますか?改訂版Sql azure知ってますか?改訂版
Sql azure知ってますか?改訂版
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介
 
Start SQL Server with Docker
Start SQL Server with DockerStart SQL Server with Docker
Start SQL Server with Docker
 
T sql 振り返り
T sql 振り返りT sql 振り返り
T sql 振り返り
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
 
2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ2015-12-16 某S社、出直しDDDってるってよ
2015-12-16 某S社、出直しDDDってるってよ
 
Seas で語られたこととは?
Seas で語られたこととは?Seas で語られたこととは?
Seas で語られたこととは?
 
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
進化したのはサーバだけじゃない!〜DBA の毎日をもっと豊かにするユーティリティのすすめ〜
 
今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよ今更だけどSqLite触ってみたよ
今更だけどSqLite触ってみたよ
 
Windows Azure BootCamp - SQL Azure
Windows Azure BootCamp - SQL AzureWindows Azure BootCamp - SQL Azure
Windows Azure BootCamp - SQL Azure
 
PerlとSQLのいろいろ
PerlとSQLのいろいろPerlとSQLのいろいろ
PerlとSQLのいろいろ
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Windows Azure and PowerShell DSC
Windows Azure and PowerShell DSCWindows Azure and PowerShell DSC
Windows Azure and PowerShell DSC
 
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
[db tech showcase Sapporo 2015] A26:SQL Server Data Page Structure Deep Dive ...
 

Mehr von Oda Shinsuke

SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdfSQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdfOda Shinsuke
 
Dot net+sql server tips
Dot net+sql server tipsDot net+sql server tips
Dot net+sql server tipsOda Shinsuke
 
Sql server 2019 ざっくり紹介
Sql server 2019  ざっくり紹介Sql server 2019  ざっくり紹介
Sql server 2019 ざっくり紹介Oda Shinsuke
 
Spark on sql server?
Spark on sql server?Spark on sql server?
Spark on sql server?Oda Shinsuke
 
SQL Server のロック概要
SQL Server のロック概要SQL Server のロック概要
SQL Server のロック概要Oda Shinsuke
 
Blazor 触ってみた
Blazor 触ってみたBlazor 触ってみた
Blazor 触ってみたOda Shinsuke
 
Linux + PHP でも SQL Server
Linux + PHP でも SQL ServerLinux + PHP でも SQL Server
Linux + PHP でも SQL ServerOda Shinsuke
 
グラフデータベースの話し
グラフデータベースの話しグラフデータベースの話し
グラフデータベースの話しOda Shinsuke
 
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介Oda Shinsuke
 
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベースSql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベースOda Shinsuke
 
Transaction scopeまだダメ
Transaction scopeまだダメTransaction scopeまだダメ
Transaction scopeまだダメOda Shinsuke
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返ってOda Shinsuke
 
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返りOda Shinsuke
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみようOda Shinsuke
 
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介Oda Shinsuke
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみようOda Shinsuke
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介Oda Shinsuke
 

Mehr von Oda Shinsuke (20)

SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdfSQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
 
What's hyperscale
What's hyperscaleWhat's hyperscale
What's hyperscale
 
Dot net+sql server tips
Dot net+sql server tipsDot net+sql server tips
Dot net+sql server tips
 
Sql server 2019 ざっくり紹介
Sql server 2019  ざっくり紹介Sql server 2019  ざっくり紹介
Sql server 2019 ざっくり紹介
 
Spark on sql server?
Spark on sql server?Spark on sql server?
Spark on sql server?
 
SQL Server のロック概要
SQL Server のロック概要SQL Server のロック概要
SQL Server のロック概要
 
Blazor 触ってみた
Blazor 触ってみたBlazor 触ってみた
Blazor 触ってみた
 
Linux + PHP でも SQL Server
Linux + PHP でも SQL ServerLinux + PHP でも SQL Server
Linux + PHP でも SQL Server
 
グラフデータベースの話し
グラフデータベースの話しグラフデータベースの話し
グラフデータベースの話し
 
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
 
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベースSql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
 
Transaction scopeまだダメ
Transaction scopeまだダメTransaction scopeまだダメ
Transaction scopeまだダメ
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返って
 
Sql world とは
Sql world とはSql world とは
Sql world とは
 
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
 
Sql world とは
Sql world とはSql world とは
Sql world とは
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみよう
 
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
 
Selenium 触ってみよう
Selenium 触ってみようSelenium 触ってみよう
Selenium 触ってみよう
 
Sql database のご紹介
Sql database のご紹介Sql database のご紹介
Sql database のご紹介
 

Sql world を支える技術

Hinweis der Redaktion

  1. 動いてるのを見てみましょう。 ちょちょっとクエリを書いて実行。
  2. 今日はこの3つをメインにスライド用意しています。 他の聞きたい!ってあればそちらも紹介します。
  3. SCM は Software configuration management(ソフトウェア構成管理) サプライチェーンマネジメントとは違うよー
  4. スキーマ:.NET でいう 名前空間 みたいな物という認識で OK です。 ログイン 作って Database にスキーマとユーザーを作成。ユーザーはログインとスキーマに紐付け。 ログイン は SQL Database なので SQL Server 認証 マルチテナント 等でも使われてるのかも知れませんね。 全テーブルに 会社コード 持つ or そもそも スキーマ 分ける
  5. スキーマ で絞り込んで テーブル定義 を取得しています。
  6. 権限を絞って対応してます。 DROP TABLE とかされると勉強会に支障をきたすので。 sa でアプリ運用しているところもあったりするんですかね? 権限は、スキーマやテーブル単位だけでなく列単位でも掛けれるので、特定の列のデータは見せたくないみたいなのもやろうと思えば可能。
  7. 通常の回答では出てこないような、嫌がらせをされる事も考える必要あり! maxrecursion 0 は危険! 通常 100回再帰で打ち切りの所を、ずっと再帰しててもええんやでという設定。
  8. 2008 では、Interface と Impl とで名前空間が分かれていたので、頑張れば 他ベンダーの SQL に対しての Parser/Generator も実装出来た。 Microsoft.Data.Schema.ScriptDom/Microsoft.Data.Schema.ScriptDom.Sql => Microsoft.SqlServer.TransactSql.ScriptDom 2012 からは、T-SQL 専用になりました。
  9. Generator はバージョン間の差が良く分からない。。 Parse&Generator のデモ
  10. ビルド時に ORDER BY チェックデモ クエリの生成は結構大変 http://odashinsuke.hatenablog.com/entry/20130224/1361714459 の記事最後見せる
  11. 参加者からの要望
  12. XML をとれましたが、そのまま表示しても普通読めません。 SSMS っぽく表示したいなー。MS製の物は無さそう
  13. 昔試してた時はちゃんと出てた。 デモ作って動かす。