Sqlime is an online SQLite playground for debugging and sharing SQL snippets.
こんにちは、Development Teamの三宅です。 先日、社内(AI事業本部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業本部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLやRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基本的には大学のデータベース講義で
SQLのチューニング方法 昔Qiitaで書いたものをzennにうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって本当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加
[2020-12-20-1] にも書いた通り、去年の 4 月から SQL と格闘する毎日です。もっとも全部自分で書くわけではなく、Looker が出力する SQL を理解したり、発生したエラーやデータ不正の原因を SQL 視点で調査したり、検証用の使い捨ての SQL を書いたりといった感じです。 つまりは SELECT 文しか書かないです。しかし、SELECT 文こそが SQL そのものと言っても良いため、現在のデータアーキテクト(データ整備人)という立ち位置での学習教材を探していました。そんな中思い出したのが本書になります。 LookML 開発者としてはこの本に書かれた全てが「優先度高」ではないため、敢えて流し読みを心がけました。 その中で重要だと思ったのはこのあたりでしょうか。 ・1 CASE 式のススメ ・2 必ずわかるウィンドウ関数 ・4 3値論理と NULL ・7 ウィンドウ関数
こんにちは、ClassiデータAI部の石井です。 私は2019年4月にソフトバンクからClassiに出向し、マーケティング部を経て、現在データAI部でデータエンジニアとして分析基盤の構築を担当しています。今回は私が現部署で最初に担当したSQL勉強会についてご紹介します。 背景 2020年春頃から、新型コロナウイルスの影響による休校や教育現場の急激な状況変化に対応するため、Classiサービスの詳細な利用状況把握の必要性が高まっています。 Classiは弊社の強みともいえる膨大な教育データを蓄積していますが、残念なことに全社的には貴重な教育データを活用しきれていないことが課題でした。 2020年夏に全社で行った「データAI部に期待すること」に関するアンケートでも、「基礎的なデータ活用方法を教えてほしい」という回答が多く寄せられました。 この状況をふまえ、データ活用のための知識の底上げを行い、
Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 SQL文を直接書かなくとも、自動的にSQL文を生成、実行してくれるORM(Object-Relational Mapper)は、プログラミングを容易にしてくれる技術としてRailsやHibernate、Springなどさまざまなフレームワークなどで活用されています。 一方で、ORMが生成するSQL文はときに複雑に、あるいは非効率なものとなり、データベース処理の遅さにつながることもあります。 このとき、SQL文の生成と実行を明示的にコードとして記述する必要がないというORMの特徴が、なぜデータベース処理が遅くなったのか、どのようなSQL文が生成され、そのどこに原因があるのか、といった調査を難しくている面があり
MySQL互換のパーサーが多い印象ですね。どのSQLパーサーを利用するのが最も適切なのか3日ほど悩みましたが、おそらく1ヶ月悩んでも結論はでないと途中で気が付き、ザラッと中身を見た感じシンプルな作りのxwb1989/sqlparserをチョイスしました。 xwb1989/sqlparserで適当なSELECT文をパースするとAST(Abstract Syntax Tree)が構造体として返却されてきました。ASTとは聞いたことがありますが何なのかは全くわかりません。怖いですね。 ASTが何なのかはわかりませんが、ひとまず中身を解析してみるとSELECT文を読み取ったらSELECT文を表現した構造体に情報を格納しているということはわかりました。構造体を更にたどってみるとこのSELECT文どのテーブルを参照しているのか、JOINしているテーブルは何かなんてこともわかります。これなら補完候補が出
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: avoid OR for better PostgreSQL query performance - Cybertec 原文公開日: 2018/05/07 著者: Laurenz Albe サイト: CYBERTEC -- データサイエンス分野でのPostgreSQLサポートやコンサルティングを行っている企業です ※挿絵は原著者自らによるものです。 生きるべきか『OR』死すべきか、それが問題だ」 「帰れ!」「非効率!」「同義反復!」 © Laurenz Albe 2018PostgreSQLクエリのチューニングは私たちCybertecの日常的な業務ですが、チューニング中にクエリにORを1つでも見つけた瞬間、恐ろしさに身の毛もよだつ思いがします。たいていの場合、ORはクエリのパフォーマンス低下の原因となるからです。 言うまでもないこ
0 SELECT basics Some simple queries to get you started 1 SELECT name Some pattern matching queries 2 SELECT from World In which we query the World country profile table. 3 SELECT from Nobel Additional practice of the basic features using a table of Nobel Prize winners. 4 SELECT within SELECT In which we form queries using other queries. 5 SUM and COUNT In which we apply aggregate functions. more t
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
結果はすぐに帰ってきました。確か2行程度だったと思います。 続けてさらに SQL を実行しようとしました。しかし、ここで同僚から「ソースコードでわからないところがあるんですが…」と声をかけられました。 こちらは急ぎの作業ではなかったので、ターミナルをそのままにして同僚の質問に回答することにしました。 そして約10分後…。 $\huge{「システムがダウンしてるー!」}$ 本番障害となりました。 何が悪かったのか **「トランザクションをかけて SELECT 文を打ったお前が悪い」**ということになりました。 何が起きていたのか ログからシステムの動きを確認したところ、あるスレッドで user_setting テーブルをロックしようとしていたことが分かりました。具体的には、以下の SQL が発行されていました。 この SQL には、ロックモードの指定がありません。この場合、PostgreSQ
この本を読みました。 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ (CodeZine BOOKS) 作者:ミック翔泳社Amazon 目次 1部 魔法のSQL 2部 リレーショナルデータベースの世界 自分のレベルと書籍のレベル 自分のレベル 書籍のレベル サンプル・演習の実行環境準備 実行環境 コンテナ起動 pgcliで接続 psqlで接続 コンテナ削除 SQLファイルダウンロード 所感 すぐに使える内容もいっぱい 読みやすい 2部の理論難しい 2021/11/24 所感追記 目次 まず目次から。2部構成になっていて、第1部は主に演習をしながら進めていくタイプの内容で、第2部は主に読み物としてリレーショナルデータベースの世界を覗くものになります。 1部 魔法のSQL 1 CASE式のススメ 2 必ずわかるウィンドウ関数 3 自己結合の使い方 4 3値論理とNULL 5
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに データ分析とデータ品質改善に従事してきた筆者が、SQLを用いた分析の基本である「ウィンドウ関数」の使い方とデータ品質の調査改善を行う手法をまとめてみようと思います。 こちらの記事は、SQLの知識向上と振り返りを主題としているので、ABC分析、バスケット分析、RFM分析などの「データ分析の手法」について説明している記事ではありません。(反響やコメントによって別投稿するかもしれません) 背景 SQLはエンジニアの大多数が利用しており、多くの方はWebサービス開発などでデータの登録画面や検索画面を作る際にSQLを利用したり、またはシ
開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQL、Oracle、SQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 Db2 (LUW)U
PartiQL's extensions to SQL are easy to understand, treat nested data as first class citizens and compose seamlessly with each other and SQL. This enables intuitive filtering, joining and aggregation on the combination of structured, semistructured and nested datasets. PartiQL enables unified query access across multiple data stores and data formats by separating the syntax and semantics of a quer
概要 全般 推奨 非推奨 命名規則 通則 表 列 別名、相関名 ストアド・プロシージャ 統一的接尾辞 問合せ文 予約語 空白類 インデント 望ましい形式 Create文 データ型の選択 デフォルト値の指定 制約とキー 非推奨設計 付録 予約語リファレンス SQLスタイルガイド(日本語訳) 日本語訳について 日本語訳は誤訳や原文の最新版に追随していない恐れがあります。誤訳や改善点があれば、GitHubのissueまたはpull requestを使用するか、Twitterでお知らせください。 翻訳: 久利史之 @nkuritw 概要 このガイドラインは利用の他、forkしたり、自分自身のものに改変したりすることができます。ここで大事なのはスタイルを選択しそれを踏襲することです。変更の提案やバグの修正にはGitHubのissueまたはpull requestを使用してください。 このガイドライン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く