Enviar pesquisa
Carregar
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
•
7 gostaram
•
6,371 visualizações
kyon mm
Seguir
おおくの部分を口頭で説明したので、メモ書き的なスライドになっております。 http://connpass.com/event/10849/ での発表資料です。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 38
Baixar agora
Baixar para ler offline
Recomendados
JobStreamerではじめるJavaBatchのクラウド分散実行
JobStreamerではじめるJavaBatchのクラウド分散実行
Yoshitaka Kawashima
開発を効率的に進めるられるまでの道程
開発を効率的に進めるられるまでの道程
Takao Sumitomo
Droid kaigiプレゼン
Droid kaigiプレゼン
Suguru Oho
データモデルは時空を越える
データモデルは時空を越える
terahide
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
Fumihiko Shiroyama
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
Shinichi Kozake
Java web application testing
Java web application testing
Tokuhiro Matsuno
Android学ぶを君へ。生き抜くためのナレッジ共有
Android学ぶを君へ。生き抜くためのナレッジ共有
Shinobu Okano
Mais conteúdo relacionado
Destaque
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
Takahiro YAMADA
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Yoshitaka Kawashima
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Yuki Anzai
マテリアルデザインを用いたデザインリニューアル [フリル編]
マテリアルデザインを用いたデザインリニューアル [フリル編]
YUKI YAMAGUCHI
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
bitter_fox
Destaque
(6)
プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
DB設計でこだわりたい三つの要素
DB設計でこだわりたい三つの要素
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
マテリアルデザインを用いたデザインリニューアル [フリル編]
マテリアルデザインを用いたデザインリニューアル [フリル編]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
徹底解説!Project Lambdaのすべて[JJUG CCC 2013 Fall H-2]
Mais de kyon mm
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm
Kaizen process with test #hackt
Kaizen process with test #hackt
kyon mm
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
kyon mm
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
kyon mm
焦らず急いでの意味
焦らず急いでの意味
kyon mm
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
kyon mm
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
kyon mm
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
kyon mm
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
kyon mm
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
kyon mm
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
kyon mm
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
kyon mm
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
kyon mm
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
kyon mm
契る意味 #pykonjp2014
契る意味 #pykonjp2014
kyon mm
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
kyon mm
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
kyon mm
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
kyon mm
Mais de kyon mm
(20)
Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
Kaizen process with test #hackt
Kaizen process with test #hackt
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
ICST2015 GUI Testingの紹介 #SIGSTJ
ICST2015 GUI Testingの紹介 #SIGSTJ
焦らず急いでの意味
焦らず急いでの意味
Sta introduction in_kyoto #devkan
Sta introduction in_kyoto #devkan
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
Gradle 2.2, 2.3 news #jggug
Gradle 2.2, 2.3 news #jggug
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
Groovyで学ぶプロセス代数 #jjug
Groovyで学ぶプロセス代数 #jjug
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
@kyon_mmの書籍の読み方 #AsianAA
@kyon_mmの書籍の読み方 #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
GradleのREPLプラグイン紹介 #jggug
GradleのREPLプラグイン紹介 #jggug
契る意味 #pykonjp2014
契る意味 #pykonjp2014
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
Test Retrospective #kyon_kao_wedding in Tokyo
Test Retrospective #kyon_kao_wedding in Tokyo
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
Último
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
arts yokohama
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
Matsushita Laboratory
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
ssuser539845
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
ssuser370dd7
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
arts yokohama
2024 03 CTEA
2024 03 CTEA
arts yokohama
2024 04 minnanoito
2024 04 minnanoito
arts yokohama
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
Shumpei Kishi
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
Tetsuya Nihonmatsu
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
Ayachika Kitazaki
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
Sadao Tokuyama
Último
(12)
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 03 CTEA
2024 03 CTEA
2024 04 minnanoito
2024 04 minnanoito
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
1.
kyon_mm #syoboben 2015/02/21 できるチューリング完全! SQLでもいろいろできる
2.
kyon_mm Test Architect TDD/BDD Expert 27
years old TDD/BDD超入門 STA 15章 Self Introduction
4.
某「さっき会ったのがしょぼちむさんですよ!」
5.
某「さっき会ったのがしょぼちむさんですよ!」 きょん「まぢで!」
6.
某「さっき会ったのがしょぼちむさんですよ!」 きょん「まぢで!」 某「来月Oracleとか、データモデル設計につい て勉強会あるんですよ」
7.
某「さっき会ったのがしょぼちむさんですよ!」 きょん「まぢで!」 某「来月Oracleとか、データモデル設計につい て勉強会あるんですよ」 きょん「まぢで!でもRDBわからん。。。」
8.
某「さっき会ったのがしょぼちむさんですよ!」 きょん「まぢで!」 某「来月Oracleとか、データモデル設計につい て勉強会あるんですよ」 きょん「まぢで!でもRDBわからん。。。」 某「だいたいなんでもいいらしいよ」
9.
某「さっき会ったのがしょぼちむさんですよ!」 きょん「まぢで!」 某「来月Oracleとか、データモデル設計につい て勉強会あるんですよ」 きょん「まぢで!でもRDBわからん。。。」 某「だいたいなんでもいいらしいよ」 きょん「あー。そうか。なんでもいいのか。よ し、チューリング完全について話そう。」
10.
idea… 関係代数、定理、証明の話 デッドロックをモデル検査する 話 データモデルのカテゴリについ て
11.
Today! Insert Performance!
12.
Agenda Problem on Testing, Migrating SQL Conclusion
13.
Problem on Testing, Migrating
14.
Situation テストのために大量のレコード が必要だ。時間がすごいかか る。。。 テーブルを変更しなければいけ ない。データ移行に時間がすご いかかる。。。
15.
Data Create Tool Factory
Girl,etc はモデル ベースでやりやすい部分もある が、実行速度についてはあまり 気にされていない。
16.
Tool MyBatis,etc は版管理のサポー トはしてくれるけれど、どう行 うかについてのサポートはとて も薄い。 実行時間が肥大化する問題につ いては解決しない。
17.
Example 3億件以上のテストデータを用 意して、アプリケーションのパ フォーマンスを計測したい。
18.
Agenda Problem on Testing, Migrating SQL Conclusion
19.
SQL
20.
Stored Procedure RDBMSで高速化といえば!!! 書きたくない筆頭。 2時間くらいかかる。
21.
Bulk Insert INSERTでの高速化といえば!! ORM経由みたいなので楽に実行 出来る事もままある。 だいたい数十分で終わる。
22.
-kyon_mm 僕が耐えられるレスポンス時間は 20分が限度だ
23.
Recursive CTE
24.
CTE 1クエリ内で何度も問い合わせ をできる再帰的に扱える機能 他の方法と違って基本的にはテ ストデータ読み込みにIOが発生 しない感じになるので、爆速。 10分前後で完了する。
25.
CTE WITH Hoge (xxx,yyy)
AS (SELECT aaa, bbb from …) SELECT xxx, count(yyy) FROM Hoge …
26.
CTE 変数のグループ名(変数名1, 変 数名2, ...)
AS (SELECT 変数名1の値, 変数名 2の値 ...)
27.
Recursive CTE WITH Hoge
(xxx,yyy) AS (SELECT aaa, bbb from … UNION ALL SELECT …) SELECT xxx, count(yyy) FROM Hoge …
28.
Recursive CTE WITH Hoge
(xxx,yyy) AS ( [初期化を書く部分] UNION ALL [再帰を書く部分]) SELECT [最終的な出力部分] WITHで定義する共通表(ex. Hoge)はいくつでもつくれる
29.
In Shortly 再帰CTEによって繰り返しが表 現できるようになったことで、 Whereで条件分岐ができるし、 SQLはチューリング完全であ る!
30.
In Shortly 基本的に再帰しやすいデータが やりやすいので、ある規則にし たがったデータの作成に使いや すい。
31.
SQL http://bleis- tift.hatenablog.com/entry/ 20100201/1265035070
32.
CTE http://www.slideshare.net/ odashinsuke/cte-12545515
33.
Brain f*ck http://bleis- tift.hatenablog.com/entry/ 20090610/1244615237
34.
Calculator http://bleis- tift.hatenablog.com/entry/ 20090610/1244560784
35.
Proof http://assets.en.oreilly.com/1/event/ 27/High%20Performance%20SQL%20with %20PostgreSQL%20Presentation.pdf http://blog.coelho.net/database/ 2013/08/17/turing-sql-1/
36.
Agenda Problem on Testing, Migrating SQL Conclusion
37.
Conclusion
38.
Conclusion RDBのデータ作成を高速に行い たくなったら再帰CTEを思い出 せ! SQLでいろいろ出来ると楽しい よ。
Baixar agora