Movatterモバイル変換


[0]ホーム

URL:


はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

タグ

関連タグで絞り込む (37)

タグの絞り込みを解除

SQLに関するene0kcalのブックマーク (36)

  • SQLアンチパターンを根本から理解する:実務で遭遇した“DBが泣く”5つのNGクエリと改善策 - Qiita

    番環境でデータ量が増えた瞬間、アプリケーションが突然重くなる すべてのエンジニアが一度は直面するこの悪夢。その原因の多くは “気づかぬうちにDBを苦しめているSQL” です。 この記事では、実務で特に被害が大きかった 5つの致命的なSQLアンチパターン と、追加で バッチ処理の最適化(バルクINSERT)、EXISTS vs IN の違い を取り上げ、 なぜ遅くなるのか(原理) どう直すべきか(改善策) どんな落とし穴があるか(トレードオフ) 実務チェックリスト を、技術書レベルでわかりやすく整理します。 目次 インデックスを殺す「関数・演算子」利用 アプリ性能を破壊する「N+1問題」 隠れたパフォーマンスキラー「SELECT *」 前方一致以外の LIKE 検索 バッチ処理最適化:バルクINSERT EXISTS vs IN の違い 補足:EXPLAINを使った実践的な確認フロー 現場

    • TypedSql──C# の型システムをクエリエンジンとして「悪用」してみた話 - Qiita

      Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 0. はじめに TypedSql は、ある日ふと湧いた「ちょっとした不満」から始まりました。 .NET でコードを書いていると、「クエリっぽい処理」を書く場面がよくあります。 例えば、すでにメモリ上にある List<T> や配列をフィルタして、一部の列だけ取り出したいときです。 そのとき、だいたい次の 3 つの選択肢があります。 素直に foreach で回す — 速くて明示的だけど、ちょっとコードがうるさい LINQ(Language Integrated Query)を使う — 書き心地はいいけれど、イテレーターやデリゲートのオーバ

      TypedSql──C# の型システムをクエリエンジンとして「悪用」してみた話 - Qiita
      • 今年俺を一番幸せにしたDX最高な奴ら10選

        みなさん、普段から開発者体験(DX)を気にしてますか?DXとは、開発中に感じる“心地よさ”や“効率の良さ”を指します。 車輪の再開発のようなDXを損なう体験がなければ開発はずっと楽しいんです! そこでこの記事では、「心から開発を楽しめる」相棒たちを10選紹介します! 1. Convex “SQLの呪縛”からの解放歴史のあるSQLはどうしても、歴史に引っ張られます。 Supabaseとかを使ってると、Row LevelSecuritySQL Functionsとかで、死ぬほど書きにくいSQLを書かなきゃいけなくなることありますよね。まるでFirebaseの認証ルール並み。良くも悪くも結局SQLだから、隠しきれない歴史の重み、つまりDXの悪さがでてくる。 しかしConvexは一切そういうのはありません!!!! 全てがDXを中心に一から考えられて作られたサービス。そう、React時代のバ

        今年俺を一番幸せにしたDX最高な奴ら10選
        • 90秒かかるDELETE文の原因を探る【PostgreSQL】 - エムスリーテックブログ

          こんにちは! デジスマチームの山田です。これはデジスマチームのブログリレー4日目の投稿です。 事業が成長してユーザー数やトランザクションが増加すると、それに比例して扱うデータの量やバリエーションも増加します。サービス規模の拡大に伴い発生する課題の1つにスロークエリがありますが、デジスマ診療においてもサービスの成長とシステムの健全性を維持するためにクエリの改善に日々向き合っています。 データベースの気持ちを知りたい稿ではそうした取り組みの1つとして、とあるDELETE文の改善の過程と、改善に至るまでに得られた調査のTipsを共有できればと思います。なお今回の事象は内部運用における特定のプロセスを最適化するための取り組みであり、利用いただいている方々の体験やサービス品質に影響を及ぼしたものではないことを申し添えておきます。 前提としてデジスマ診療はPostgreSQL互換のAmazon A

          90秒かかるDELETE文の原因を探る【PostgreSQL】 - エムスリーテックブログ
          • WITH句てんこもりのSQLをデバッグする - エムスリーテックブログ

            巨大なSQLの出力が意図と違っていたり違っているかもしれないとき、どこから確認しようか頭を抱えてしまうことってありますよね。せめて多段階で作られているたくさんのCTE (WITH句)、これらが一つずつどんな表を出力しているのか簡単にのぞけたら手がかりもあるのだけれど⋯ 今回はそれをわりと現実的な手間でできるようにする小技です。エムスリーエンジニアリングループUnit1(製薬プロモーション)/Unit9(治験臨床研究支援)エンジニアの三浦[記事一覧 ]です。 魔法の一行 デバッグを実現する一行 We are hiring 魔法の一行SQLの最後に -- */ という無意味なコメント行を付けておいてください。ひと目見て分かる通り、まったく無意味です。ところがこれがあるだけで、デバッグのときにこんなことができるようになります―― デバッグを実現する一行 次のようなCTEの大行列があるとします

            WITH句てんこもりのSQLをデバッグする - エムスリーテックブログ
            ene0kcal
            ene0kcal2025/06/18非公開
            これは良いプラクティス!/ネットにつなげない現場もあるんよなー(いまソーナンス)。
            • タイミーのプロダクトデザイナーは全員SQLを書きます|Yasuhiro Yokota

              来月、タイミーのプロダクトデザイナー全員にSQL習得してもらうことにしたよ — Yasuhiro Yokota & STAFF / タイミー (@yktyshr) December 25, 2024 そして、タイミーのプロダクトデザイナーはSQLを書けるようになってもらいました。その取り組みについてお話しします。 私はプロダクトをデザインするときに、FigmaNotion、そしてBigQueryを常に開いています。 データをもとに仮説を立ててインタビューすることもあれば、インタビューで得られた課題のアイデアをデータで裏づけることもあります。「多くのユースケースはどうだろう?」「エッジケースは?」という疑問が湧いたら、データで知れる場合が多いです。 このように、デザイナーが大小の不確実性に向き合いながら体験を設計するのであれば、データを扱うことは基的なリテラシーにしてよいのでは、と考えま

              タイミーのプロダクトデザイナーは全員SQLを書きます|Yasuhiro Yokota
              ene0kcal
              ene0kcal2025/03/19非公開
              プロダクトデザインでデータに親和するためにSQLが使えるようになるのは良いと思う。DAが書いたSQLも自分でカスタマイズできるようになるだろうし。
              • 勢いでつくったSQLツールと歩んだ28年。フリーソフト「A5:SQL Mk-2」開発秘話【フォーカス】 レバテックラボ(レバテックLAB)

                TOPフォーカス勢いでつくったSQLツールと歩んだ28年。フリーソフト「A5:SQL Mk-2」開発秘話【フォーカス】フリーソフト「A5:SQL Mk-2」 開発者 松原 正和 1974年富山県生まれ。工場向けシステム開発やSESを経て、2020年より位置情報システム会社に参画。個人としては、1997年にSQLクライアント「A5:SQL Mk-2」の開発を開始。以来、約28年間にわたり改良と保守を続ける。ソフトの初期名は「あまのいわと5 IMPERIALGODDESS II」。SF漫画『ファイブスター物語』の主人公名が由来。その後「あまのいわと5」を省略したA5に、旧日軍の九六式艦上戦闘機の別名「A5M」とアニメ『重戦機エルガイム』の登場メカ「エルガイムMk-II」を組み合わせ、現名称に。 「A5:SQL Mk-2」公式サイト X 「A5:SQL Mk-2」というSQLクライアントが

                勢いでつくったSQLツールと歩んだ28年。フリーソフト「A5:SQL Mk-2」開発秘話【フォーカス】 レバテックラボ(レバテックLAB)
                ene0kcal
                ene0kcal2025/03/13非公開
                A5M2は凄い便利に使わせてもらっています!/知らんけど、多分今なら生成AIに代替コードを書いてもらえる気がする。一気に書けないなら部分的に切り分けたら良い気がする。
                • オイ、そこのSELECT COUNT。余計な数え上げに意味なんかねえ - inSmartBank

                  こんにちは。MySQLは秋の季語とする一派が世に存在していることを知り、私もMySQLに関わる記事を書いてみようと筆を取ることにしました。 さて、リレーショナルデータベースをバックエンドとするWebアプリケーション開発において、特定の条件に合致するレコードがN件だけ存在するかどうかを確認するロジックは頻出といえます。プログラマとして一度は書いたことがあるのではないでしょうか? この記事ではそのような件数カウントを行うためのクエリが引き起こした性能劣化と、その改善アプローチについて紹介していきます。 なお、記事の内容はMySQLを前提としており、アプリケーションコードの例はRuby onRailsを用いますが特別な前提知識は必要ありません。コードの雰囲気だけ感じ取っていただければと思います。 ありがちなコード if query.count == n の問題 冒頭で述べた通り、特定の条件に

                  オイ、そこのSELECT COUNT。余計な数え上げに意味なんかねえ - inSmartBank
                  • 生SQLに型を手書きする時代は終わり?Prismaの新機能「TypedSQL」

                    SQLを扱う $queryRawTypeScript向けのORMライブラリとしてPrismaがあります。Prismaは直感的で型安全なAPIを提供し、TypeScript向けのORMとしては第一に名前が上がることが多いライブラリです。 しかしそんな人気なPrismaでも、裏側では少しクセのあるSQLが発行されていたり、欲しいSQLがPrismaのAPIでは実現できない場合があります。 そういった場合のために $queryRaw というメソッドが用意されており、これを使うことで生SQLを書いてその結果を受け取ることができました。他のORMにもよくある機能です。 例えば以下のように実装することができます。 const users = await prisma.$queryRaw` SELECT id, name FROM "Users" WHERE id = ${userID} `; co

                    生SQLに型を手書きする時代は終わり?Prismaの新機能「TypedSQL」
                    • SQL滅ぶべし | ドクセル

                      SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd がRDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012)SQLSQL は目的別に 4つに分けられる • DCL (データ制御言語) GRANT とか • DDL (データ定義言語)CREATE TABLE とか • TCL (トランザクション制御言語) ROLLBACK とか • DML (データ操作言語) • INSERT, UPDATE, DELETE, SELECT •データ分析者にとって重要なのは SELECT 文

                      SQL滅ぶべし | ドクセル
                      ene0kcal
                      ene0kcal2024/05/08非公開
                      ほろぶべし等と強い言葉を使うと弱く見えるぞ!…それはさておき、ただの書き難さだけなのですね。パフォーマンス上げる際のノウハウ吸収してくれると更に良いなーと思いました。
                      • サブクエリの書き方を2万文字弱かけてすべて解説する

                        これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

                        サブクエリの書き方を2万文字弱かけてすべて解説する
                        • 高効率なSQLクエリの書き方 - Qiita

                          概要 この記事では、SQLクエリをより効率的に記述するためのベストプラクティスとテクニックに焦点を当てています。データベースのクエリはシステム全体のパフォーマンスに直結するため、最適な書き方を知ることは重要です。インデックスの効果的な活用方法、適切な結合の選択、そして条件の効果的な書き方など、SQLの最適化に関する具体的な手法を解説します。各SQL文に関する実行計画の結果も掲載していますので、ぜひご確認ください。 なお、Oracle19cとOracle12cでの利用実績がありますが、他のデータベースやバージョンにおいての検証は行っておりません。 新しい情報は随時追加されますので、お楽しみにしてください。SQLの最適化に関連する基的なアイデア 以下の通りと考えています。 1.インデックスの利用 2.正しいJOINの選択 INNERJOIN、LEFTJOIN、RIGHTJOINなど、

                          高効率なSQLクエリの書き方 - Qiita
                          ene0kcal
                          ene0kcal2024/01/20非公開
                          そろそろこの辺りの知見や設定をAIが推奨提案してくれないかな。
                          • 実務に役立つSQLのテクニック集 - Qiita

                            概要 実務で使用されたSQLをまとめました。Oracle19cとOracle12cでの利用実績がありますが、他のデータベースまたバージョンでの検証は行っていません。 随時追加予定です。Oracleデータベースメタデータ抽出 オブジェクトの定義や作成に使用されるSQL文を抽出 SELECTsqlarea.sql_id ASsql_id, parsing_schema_name, CASE WHEN length(sql_fulltext) > 10000 THEN to_clob('sql is too long') ELSEsql_fulltext END ASsql_fulltext,sql_bind_capture.name AS param_name,sql_bind_capture.value_string AS bind_value, last_active_tim

                            実務に役立つSQLのテクニック集 - Qiita
                            • xlsxファイルにSQLを実行するxlsxsql - Qiita

                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                              xlsxファイルにSQLを実行するxlsxsql - Qiita
                              • リーダブルSQL[より良いSQLを書くためのシンプルで実践的なテクニック] - Qiita

                                はじめに 最近エンジニア界隈では「リーダブルコード」が話題なっていますね。リーダブルコードでは、このような定理が紹介されています。 「コードは他の人が最短時間で理解できるように書かなければいけない。」 Dustin Boswellリーダブルコード P.3 より引用 皆さん、クソSQL1を読んだことがありますね? クソSQLを書いたことがありますね? 僕は、あります。 そこで、記事ではどうしたらリーダブルなSQLが書けるかというアイデアを紹介します。 処理の流れの順に上から読めるようにする サブクエリを多用したSQLは複雑に絡み合った大きな複雑な塊になってしまいます。サブクエリを使ったSQLでは、処理の流れは上から下ではなく、ネストされた内側から始まります。しかも、必ず内側から読んでいけば理解できるかというとそうでもなくて、内側のクエリが外側のクエリの影響を受けていて、内側のクエリだけ

                                リーダブルSQL[より良いSQLを書くためのシンプルで実践的なテクニック] - Qiita
                                • データ基盤の管理に役立つ監視用のSQLを紹介します - 10X Product Blog

                                  Analytics Engineerの吉田(id:syou6162)です。BigQueryを中心に10X社内のデータ関連の管理をしています。10Xに入社してそろそろ一年になろうかとしていますが、データ基盤を適切に管理 / 運用するためにSQLによる監視を少しずつ取り入れています。この記事では、具体的にどのようなSQLを書いて監視しているのか紹介したいと思います。 なお、SQLを使ったデータ基盤の監視自体については私の前職のTechBlogで詳細に書いていますので、そちらを参照してください。SQLを使った監視でデータ基盤の品質を向上させる - MonotaROTechBlog データ管理に役立つメタデータに関する勉強会を社内外で開催しました - MonotaROTechBlogエントリはこれをベースに「dbtをフルに活用している10Xの環境向けに入れた監視」や「BigQuer

                                  データ基盤の管理に役立つ監視用のSQLを紹介します - 10X Product Blog
                                  • SQLの実行計画の読み方 |

                                    今回は、SQLを書く上で特にパフォーマンスに影響のあるSQLの実行計画の読み方について解説します。実行計画はデータベース製品によってさまざまに差異がありますが、ここでは比較的どのデータベース製品でも共通する内容について解説します。 実行計画とは記述したSQLが実際にデータベースの内部でどのように処理されて結果を返すか、その処理方法を記述した情報です。 A5:SQL Mk-2では、SQLエディタで実行計画を見たいSQL の上にキャレットがある状態でメニューから [SQL(S)] – [SQLの実行計画(J)] または、Ctrl+E で表示できます。 表示の仕方はデータベース製品ごとに異なりますが、多くのデータベース製品ではツリー状の情報として表現されます。(このため A5:SQL Mk-2でもツリービューで実行計画を表示します。) ツリーのリーフ(端)から処理が行われ、ルート(根)に向かっ

                                    ene0kcal
                                    ene0kcal2023/05/06非公開
                                    ずいぶん前にこの基礎知識を得て数十億レコードのクエリの速度改善を行った(Oracleで)。インデックスを上手く設定しても思い通りにならなく、何度やっても実行結果が定まらないので仕方なくヒント句を使った記憶。
                                    • 検索が爆速になるデータベース設計を公開します

                                      こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ たとえば、旅行会社向けのアプリケーションであれば、宿泊素材の情報としては ホテルの情報「〇〇ホテル」(~約2万件) プランの情報「朝付き・ロングステイ△△プラン」(0~1500件/施設) 客室の情報(~100件/

                                      検索が爆速になるデータベース設計を公開します
                                      • SQL50本ノックをSQLite3 Fiddleで試す - Gマイナー志向

                                        Software Design「データベース速攻入門」に「SQL50ノック」が掲載されました - LIVESENSE ENGINEERBLOG 最近では、postgres-wasmなど、WebブラウザでDBを動かせるようになってきており、もう少しすれば、WebAssemblyを使って、ブラウザですぐにノックを始められるようになるかもしれません。もしも、また何年か後に記事を更新する機会があれば、試してみたいですね。 Web上からすぐに試せるpostgres-wasmはPagilaのデータを持っていくことが現時点で出来なさそうだったものの、SQLite3WebAssemblySQLiteのデータを持っていけました。SQL50ノックを気軽に試せそうです。 手順1 sakila-sqlite3をダウンロード まずgithubからsakila-sqlite3をダウンロードします。 gith

                                        SQL50本ノックをSQLite3 Fiddleで試す - Gマイナー志向
                                        • SQLを速くするぞ―お手軽パフォーマンス・チューニング

                                          このサイトでは、SQL を高速化するためのちょっとしたパフォーマンス・チューニングの技術を紹介します。と言っても、『プログラマのためのSQL 第2版』の受け売りがほとんどなので、このを読んでいただければ、稿を読む必要はありません。 最初に、パフォーマンス・チューニングに関する全体の方針を述べておくと、それはボトルネック(一番遅いところ)を改善することです。当たり前ですが、既に十分速い処理をもっと速くしたところで、システム全体のパフォーマンスには影響しません。従って「処理が遅い」と感じたら、最初にすることは、SQL やアプリの改修ではなく、「どこが遅いのか」を調査することです。いきなりあてずっぽうで改善をはじめても効果は出ません。医者が患者を診るとき最初にすることが検査であるのと同じです。病因が何であるかを突き止めてからでないと、正しい処方はできないのです。 その基を承知していただいた

                                          お知らせ

                                          公式Twitter

                                          • @HatenaBookmark

                                            リリース、障害情報などのサービスのお知らせ

                                          • @hatebu

                                            最新の人気エントリーの配信

                                          処理を実行中です

                                          キーボードショートカット一覧

                                          j次のブックマーク

                                          k前のブックマーク

                                          lあとで読む

                                          eコメント一覧を開く

                                          oページを開く

                                          はてなブックマーク

                                          公式Twitter

                                          はてなのサービス

                                          • App Storeからダウンロード
                                          • Google Playで手に入れよう
                                          Copyright © 2005-2025Hatena. All Rights Reserved.
                                          設定を変更しましたx

                                          [8]ページ先頭

                                          ©2009-2025 Movatter.jp