Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
概要 データエンジニア界隈で話題となってきたdbtに関する調査内容を共有します。 OSS版のdbtでも機能が充実しており、データエンジニアの方には一部の機能の利用だけでも価値があるツールです。 必要に応じて、この記事を更新します。 dbt(Data Build Tool)とは dbtとはData Build Toolの略であり、dbt Labs社が開発しているデータ連携のELTにおけるT(データストア内でのデータ変換)の実施をサポートするツールです。 機能をざっくり整理すると下記のものがあり、SQL文のコンポーネント化やドキュメントの自動生成に特異性があります。 有償版であるdbt cloudとOSS版であるdbt Coreがあります。dbt cloudにて、developer版という個人検証用の無償ライセンスもあるので、とりあえず触りたい方はこちらがおすすめです。 引用元:dbt Pri
SQLを高速化するコツ・テクニック ここでは、SQLを高速化するための方法について次の内容を解説します。 キーワードは大文字を使う カラムの演算はしない サブクエリの引数は「EXISTS述語」を使う 「BETWEEN」は基本的に使う必要なし EXISTS述語のサブクエリ内では「SELECT *」を使う 極値関数(MAX / MIN)でインデックスを活用する 行数を数えるときは「COUNT(列名)」を使う 「GROUP BY句」でインデックスを活用する 「ORDER BY句」でインデックスを活用する UNION、INTERSECT、EXCEPT には「ALL」を付ける 実はインデックスが使用されていない 行ポインタによるアクセスが最速 ワイルドカードは使わない カラム番号は使わない テーブルに別名をつける 暗黙の型変換は回避する IN述語の引数は「最もありそうなキー」を左に記述する 1つずつ
SQLのチューニング方法 昔Qiitaで書いたものをzennにうつして、若干の修正、追加をしてみました。 ORACLEでの経験を元に書いていますがコストベースのリレーショナルデータべースなら大体共通の考え方だと思うので他にも使えると思います。 SQLのチューニングといえば比較的容易に済むインデックスをとりあえず作成する。といった対応を取られがちですが、数万レコード程度でのデータ量ではあまり効き目がなく(自分の経験則)、どちらかといえば、結合順が大幅に狂ってたりすることが原因のことが多かったりします。よって本当にインデックスがないことが原因なのか?を熟考する必要があります。(例えばID以外のフラグとかコードに単項目indexを貼ってるのもみたことがあります。怖いけど実話) また、インデックスを作りすぎるとオプティマイザが狂いやすくなって他のSQLにも悪影響を及ぼしたりするので結構熟慮して追加
DBファサードを使用して、SQLを実行する準備 DBファサードを使用することで、Eloquentを使わなくてもSQLを実行することが可能です。 DBファサードを使用するにはIlluminate\Support\Facades\DBをuse文で読み込んでおきます。 use Illuminate\Support\Facades\DB; データを取得(Select)する データを取得する場合は、下記のように書きます。 $result = DB::select("select * from users"); dd($result); DBファサードのselectメソッドに、引数でSQLのセレクト文を渡すことで実行可能です。 即時実行されて、結果が返ってきます。 usersテーブルには、3人分のユーザーデータを格納しています。 上記の結果、ddヘルパーで出力すると、下記のようになりました。 ^ ar
① SQLでCREATE USERを実行(ユーザーを作成するSQL) ユーザーを作成する一つ目の方法は、SQL文を発行してユーザーを作成する方法です。 SQLなので構文と具体例を下記に紹介します。psqlやpgAdmin上から可能です。 ※下の例は「CREATE USER」としていますが「CREATE ROLE」でも実行できます。 -- ユーザー名「user1」を作成する構文 CREATE USER user1; -- ユーザー名「user1」をパスワード「pass」で作成する CREATE USER user1 WITH PASSWORD 'pass'; -- ユーザー名「user1」をパスワード「pass」で作成し、 -- パスワードの期限を2021年の終わりまで有効とする(指定しない場合は永遠に有効) CREATE USER user1 WITH PASSWORD 'pass' VA
さてさて、Laravelの提供する機能で特に便利なのが「Query Builder」、つまりデータベースの操作といっていいと思います。 Laravelに限らずですが、フレームワークがなかった頃はいちいちDBに接続するコードを実行し、それから冗長なSQL文を繰り返し記述したものですけど、現在はおかげさまでホントにすっきりしたコードで開発できるようになりました。 ということで、今回はLaravelの根本的な機能のDB操作の中から、データ取得にフォーカスした全実例を紹介します。 【動作環境】 Laravel 5.6 MySQL 5.7 データ取得の基本 get()で全てのデータを取得する Laravelでデータベースからデータ取得する基本は以下のようになります。 $items = \DB::table('items')->get(); // 全てのデータが取得できる データベース名をtable(
概要 とあるプロジェクトで Rails 3.2 + MySQL 5.5 を利用してる。 管理画面の機能追加と改修をしているのだが、 ある機能の一覧ページが重くて開かないと報告を受けた! 1台しかない MySQL サーバが落ちて、 サービスに支障が出たことが何度かあるらしい。 問題のページについて 問題のページはよくある、管理画面の一覧画面。 Ajax により、JSON で一覧情報を受け取って表にするページなのだが、 集計値も表に含まれており、この集計値の算出が遅い原因になっていた。 調査・再現 本番同等のDBを準備してもらい、問題の画面を開く。 数分待っても、JSON が返却される様子がなく、そのままタイムアウト。 MySQL のクライアントからshow processlist;で実行中の SQL を軽く覗いてみると、 集計値を出すための SQL が 15 〜 30 秒くらいかかっている。
最近、少しブログをサボり気味でした。また再開したいと思います。よろしくお願いします(^o^)/ SQL Server のチューニングについてまとめてみる - その1 - ( インデックスの調査 ) - 都内で働くSEの技術的なひとりごと に関する補足です。 まずは、自分のデータベースに対していろいろなクエリを投げている状態で、そのクエリに対するインデックスがどのくらい不足しているかをざっくり参照する方法から試してみましょう。sys.dm_db_missing_index_details から取得できます。以下のクエリを SQL Server Management Studio で発行してみましょう。( 単純にカウントするだけです... ) SELECT DB_NAME(database_id) as [データベース名], count(*) as [期待しているインデックスが存在しない数]
“ SQL文を最速にする11のポイント たとえ最終的な結果が同じでも,SQL文は書き方一つでパフォーマンスがずいぶんと変わってきます。ここでは,速いSQL文を記述するためのポイントや注意点をいくつか紹介しておきましょう。 ●WHEREの左辺で算術演算子や関数を使わない WHERE句の左辺に算術演算や関数を指定すると,インデックスが使われません。例えば, SELECT NAME FROM CUSTOMERS WHERE SAL - TAX > 1000 とすると,たとえSALフィールドにインデックスが定義されていてもテーブル全体を走査してしまいます。こうした場合は, SELECT NAME FROM CUSTOMERS WHERE SAL > TAX + 1000 のように記述すれば良いでしょう。 ●「後方一致」検索はなるべく避ける インデックスが付加されているフィールドであっても,LIKE
アプリケーションの応答が急に遅くなった、バッチ処理がいつもの時間に終わらない・・・ クエリのパフォーマンスが低下し早急に対処が必要な場合に、まずお試しいただきたいことをまとめました。 まずは 1 を実施してパフォーマンスが改善されるか確認し、ダメなら 2 または 3 へ進んでください。 1. 統計情報を更新する 統計情報を最新の状態にすることで、現在のデータ分布に最適な実行プランが選択されるようになる可能性があります。 a) データベース単位で実行 sp_updatestats どのクエリを実行しても遅い、どのオブジェクトの統計情報を更新したらよいのかわからない、という場合にお試しください。 ステートメント) ---------------------------- USE <データベース名>; GO EXEC sp_updatestats; -----------------------
NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック
SQL整形ツール DML BreakerはJavaScript製のオープンソース・ソフトウェア。O/Rマッピングソフトウェアは数多く登場しているが、より細かな最適化を求めたり、旧来のシステムではまだまだSQLを使わざるを得ない場面が多い。またログに吐き出されたSQLをチェックしたりする必要がある場面は多々ある。 WHEREでつないだ版 そんな時に出力されたSQLを手作業でフィールド単位に分けたり、テーブル名を並べたりするのは手間のかかる作業だ。そこで使ってみたいのがSQL整形ツール DML Breakerになる。このソフトウェアは貼付けたSQLを解析して読みやすいSQLに変換してくれるのだ。 CRUD(SELECT/INSERT/UPDATE/DELETE)のSQLに対応しており、適切な改行やインデントを挿入してくれる。Webブラウザ上で動作するので社内に一つであれば皆で使えて便利だろう。
ベンチャーブログのランキングに参加しています。 下のバナーをクリックして応援していただけると嬉しいです。 またしばらくご無沙汰しておりました。最近は仕事がボチボチ忙しいのもありますが、Webプログラミングで遊んだりもしていて、なかなか他の時間が取れません。で今回は、ちょっとしたプログラミングのネタです。 いま取り組んでいるのは「あるコンテンツ群をカテゴリーで分類してWebブラウザーに表示する」というものです。どうせなら「自由度が高くて、カテゴリー構成を変更してもコンテンツの修正しないですむ仕組み」ということで、ツリー構造のカテゴリーにしたのですが、これがなかなか手強いヤツなのです。 具体的なイメージがないと理解しにくいので、次のようなツリー構造のカテゴリーを考えてみましょう。カテゴリー名はいい加減なので、その部分では突っ込まないでください。階層構造を持つカテゴリーのサンプルです。 データは
A5:SQL Mk-2は複雑化するデータベース開発を支援するために開発されたフリーのSQL開発ツールです。 高機能かつ軽量で、使い方が分かりやすいことを目標に開発されています。 SQLを実行したり、テーブルを編集するほかに、SQLの実行計画を取得したり、ER図を作成したりすることが出来ます。 特徴・機能 OCI接続・直接接続・ADOまたはODBCを介したDBへの接続 Oracle DatabaseはOCI経由の接続・直接接続が出来ます。 PostgreSQLとMySQLは直接接続が出来ます。 Microsoft SQL Serverは、OLE DBプロバイダを直接呼び出した接続ができます。 IBM DB2は、ODBCドライバを直接呼び出した接続ができます。 その他のデータベースは、ADOまたはODBCを利用して接続します。 Oracle, PostgreSQL, MySQLは、A5:SQL
Click HERE to view desktop version/add-in version for ssms/vs of SQL Pretty Printer. Click HERE to try FREE ONLINE SQL beautifier, also known as Instant SQL Formatter. Instant SQL Formatter is a free online sql tidy tool, actually, it not only can beautify your sql but also can turn your formatted sql into html code, so you can post coloured sql code in your blog, forum,wiki and any website easily
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く