リレーショナルデータベースの基本とSQL*PLUS:間違いやすいポイントを追え! Bronze SQL基礎I(1)(1/2 ページ) Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronzeの取得を目指すITエンジニアは多い。本連載で間違いやすいポイントを確認し、合格に近づこう!
「A5:SQL Mk-2」は、SQL文の入力支援やER図作成などの機能を備えた高機能なSQL開発環境。Windows 98/2000/XP/Server 2003/Vista/Server 2008/Vista x64に対応する寄付歓迎のフリーソフトで、作者のWebサイトからダウンロードできる。 本ソフトは、SQL文の作成・実行を行える汎用のデータベース開発環境。ADOやODBCドライバーを利用して各種データベースに接続可能で、本ソフトで作成したSQL文を実行し、その結果を表示できる。また、SQLの実行計画を取得したり、実行結果を「Excel」へ出力することも可能。 画面はサイドバーと編集画面の2つに分割されており、サイドバーではデータベースおよび関連するスキーマ・テーブル・ビューといった項目がツリー形式で表示される。編集画面はタブ切り替え式になっており、SQL文やテーブルなどを複数開いて
OracleはSQLを発行するときにキャッシュを利用して効率を高めようとしますが、SQL文が同じ意味でも、スペースの位置や大文字小文字が違っただけでキャッシュヒットしません。SQLを記述するときはルールを徹底して、同じSQL文であれば一文字も違わないようになるようにする必要があります。 以下のSQLはすべて違うSQLとして扱われ、キャッシュを利用できません。 select id from emp; SELECT ID FROM EMP; SELECT ID FROM EMP ; SELECT ID FROM EMP; ルール2: SELECT * は利用しない。列名をきちんと記述する。 SELECT * は不要な列まで処理してしまいます。きちんと列名を記述したほうが、パフォーマンスは良くなります。 ×SELECT * FROM EMP; ○SELECT ID, NAME FROM EMP;
既報の通り、Oracle Databaseの無料版、「Oracle Database 10g Express Edition (以下XE)」が公開された。オープンソースコミュニティの一部では、つい先日のInnoDB買収と併せて「MySQLへの圧力」と囁かれていたりもするわけだが、どちらかというとMicrosoft SQL Server 2005 Express Editionへの対抗措置的な意味合いの方が大きいのかもしれない。いずれにせよ、我々ユーザにとって安価な選択肢が増えるのは大歓迎だ。 今のところOracle Database XEはベータ版であり、まだ再配布や商用利用は認められていない。しかし、正規版がリリースされた暁には、再配布や自社製品への組み込みも可能な、かなり自由なライセンスのもとで利用できるようになるようだ。そこで、今回は試しにベータ版をインストールし、機能をざっと眺めて
Oracle 10g Express Edition を使うことで、Oracle 10g を制限つきではありますが、 手軽に利用できるようになりました。 いまさらかもしれませんが、今回はインストールの手順について追っていきたいと思います! 2007/03/16 の段階では下記のようなバージョンになっていました。 Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for 32-bit Windows: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production
図3●WHERE句を間違えたSQL文の例<BR>(1)はDELETE文でWHERE句を指定しなかった例。WHERE句を指定しないと,すべてのレコードが選択されたことになり,全レコードが削除されてしまう。(2)はUPDATE文でWHERE句を間違えた例。WHERE句を間違えても指定した通りに実行し,更新してはいけない個所まで更新してしまう。(3)はSELECT文においてテーブル間の結合条件を忘れた例。この場合,2つのテーブルの全組み合わせが行われ,期待しない結果が出力される リレーショナル・データベース管理システム(RDBMS)を利用する上で欠かせないのが「SQL」の習得である。SQLの習得はSEにとって必須であるが,SQLはC/C++やJavaなどの汎用プログラミング言語とは異なる特性を持つため,利用には注意すべき点がある。本セミナーの目的は,SQLを使い始める際に陥りやすい失敗や気をつけ
当サイトはdbにMySQLを使用しています。BarkleyDBであれば、FTPでdbのディレクトリーごとローカルに落としてバックアップ出来るのですが、MySQLではそうも行きません。ロリポップのサーバーではphpMyAdminを使用してバックアップ出来るので、作業手順の覚え書きとして記しておきます。実はOgawa::Memorandaさんの「LolipopのMySQLデータベースを簡単バックアップするCGIスクリプト」と言う素晴らしい物も有るので、ご覧になってみてください。 ロリポップのユーザー専用ページより、「WEBツール>データベース作成>phpMyAdminを開く」を選択します。ログイン画面が表示されるので、Language:にMTで使用している言語・文字コードを選択するのですが、当サイトで使用しているUTF-8がなく、English(en-iso-885901)で進めることにしまし
「データベースはブラックボックス。どんなSQL文を投げたらどんな結果が返ってくるかさえ知っていればよい」---そう思っている人も多いかもしれません。 しかし,本物のソフトウエア・エンジニアを目指すのであれば,データベースが動く仕組みを学ぶことは避けて通れません。パフォーマンスなどに問題が生じたときどこから手を付けていいのか皆目見当がつかない,といった事態に陥りかねません。 市販のRDBMSの内部はかなり複雑ですが,基本的な部分を理解するのはそれほど難しくありません。この特集でデータベースの動く仕組みを理解してください。 イントロ ●ブラックボックスのままでいいの? 基礎から理解するデータベースのしくみ(1) Part1 ●SQL文はどのように実行されるのか 基礎から理解するデータベースのしくみ(2) 基礎から理解するデータベースのしくみ(3) 基礎から理解するデータベースのしくみ(4) 基
こんにちは、櫛井です。 今回は、サイト運営を行う上で知っておきたいサーバの種類やその役割、DBサーバについてお送りします。記事タイトルに“超基礎入門”とあるように、あまり難しい言葉を使わずに書いてみます。 サーバの種類と役割 ユーザーが画像やテキストなどを投稿できる CGMコンテンツの場合、情報を表示するだけの一般的なウェブサイトとは違ったサーバ構成を行う必要があります。データの置き場所を分散させ、役割を決めたサーバを適切に配置することで、負荷分散や万が一の障害対応時の問題切り分けなどにも有効といった特徴があります。 では、具体的にどのようなサーバがあるか、それぞれどのような役割をしているか、代表的な例を紹介してみます。 ※かっこ内は社内での通称 アプリケーションサーバ(app) プログラムが走る。ここで表示するコンテンツを作ってたりする。 ウェブサーバ(www) リバースプロキシとして稼
※ 画像は公式サイトデモより。 DBを使ったWebアプリケーションが当たり前になり、その重要性は増す一方だ。万一、データが消失するような事態になったら、ビジネスに与える影響は計り知れない。 SQLインジェクションはDBに対する攻撃の一つだ。システムにバグがなければ良いが、それは起こってみてからしか分からない。予防措置をしいておこう。 今回紹介するオープンソース・ソフトウェアはGreenSQL、SQLインジェクションを防ぐDB用ファイアウォールだ。 GreenSQLはDBとWebサーバとのプロキシとして動作する。そして、その間で行われるSQL文を監視し、問題があるSQLを予め弾いてくれる。 対応しているDBはMySQLのみになる。ただ防ぐだけではなく、危ないものに対してはウォーニングログを残しておいてくれる。ログをチェックする事で、Webアプリケーションの強化も実施できる。 セキュリティ対策
シングルマスタの非同期レプリケーション機能では、マスタサーバーが1台に限定され、マスタからスレーブへの複製は非同期で行なわれるため遅延が生じ、短時間のスケールで見ると全スレーブとの同期が保証されない。しかし、その反面スレーブの台数を増加させていってもマスタサーバーの更新負荷は大きくならず、スケーラビリティを維持できるという利点がある。DeNAによる運用実績でも、マスタとスレーブ間の遅延は通常数秒程度以内に収まる。 このレプリケーションを利用する場合、アプリケーション側ではデータ更新時にはマスタサーバーへ接続し、データ参照のみを行なう場合はスレーブサーバーへ接続するように作成する必要がある。 Webや携帯電話向けサービスの場合、小さな規模で始めてユーザー規模、データ規模、ページビュー数を徐々に増加させていくことが多い。小さな規模のためDBの負荷分散が不要な場合でも、マスタサーバー1台、スレー
いいね! 4 ツイート B! はてブ 185 Pocket 22 さくらインターネットのレンタルサーバーは非常に高機能なんですが、バックアップ機能だけはありません。(私が確認する限り。) HTMLやGIF、PHPなどのファイルはローカルのPCで持っているから大抵は大丈夫だとして、データベース系は間違って全部消してしまった日には目も当てられません。。定期的にバックアップを取るようにしていますが、忘れることもよくあるので、自動バックアップスクリプトをcronに登録しときました。 よくあるスクリプトですが、参考までに張っておきます。3日間分のMYSQLのバックアップデータを保持します。mysqlのID/PWなどは書き換えて下さい。 何もバックアップなんてしてない!という人は、自己責任で使ってみて下さい。 #!/bin/sh PATH=/bin:/usr/bin:/sbin:/usr/sbin:/
PostgreSQLをチューニングする機会があったので その時に調べたチューニング項目を備忘録として残しておきます。 バージョンの違いやサーバの規模などによっても 効果は変わってくると思うのであくまで参考程度のものですが。 ・shared_buffers 7系では8000〜10000程度まで引き上げる 8系では150000程度まで引き上げることが可能、100000程度が性能のピーク これに多く割り当てるよりOSのバッファ領域として使う方が性能が向上する テーブルサイズを割り出して設定するのがベスト 簡単に設定するなら搭載メモリ量の1/4、搭載メモリが多ければ1/2ぐらいでも可 ・max_connections 7系では256程度、8系では1000程度が性能のピーク ・work_mem(sort_mem) 適切なサイズに調整する、2048〜4096程度 プロセス毎
元ネタ: http://labs.unoh.net/2007/07/mysqltips.html あまり具体的じゃないので、僕の考えとか。 正しいかどうかは各自の状況だとか実際試すべきなんだけど、参考になれば。 MyISAM、InnoDBなどテーブルタイプ 僕は断然InnoDB派です。 ただ仰るとおり、ログるだけのテーブルとかならMyISAMでもいいとは思うけど。 トランザクションやロック処理などが必要ない場合など、MyISAM形式にも良いところはあるので検討してみる価値はあるかもしれません。 これだけの指摘だとちょっと微妙な気がするです。 MyISAMの使いどころってのは、 ピンで他とリレーションが無い単純追記系のテーブル リレーションがあり、同一トランザクション内での更新系クエリが存在する場合は、トランザクションが期待通りに動かないので、基本的にはInnoDBと混在させるべきではない
いろいろな本からメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),
GUIによるSQL文の作成など、さまざまな開発支援機能を備えるSQL開発環境「黒猫 SQL Studio」v1.1.7.413が6月4日に公開された。Windows 2000/XPに対応しており、個人使用・業務にかかわらずフリーソフトとして利用可能。現在作者のホームページからダウンロードできる。 「黒猫 SQL Studio」は、SQL文の作成やテストを行える汎用のデータベース開発環境。本ソフト上からOLE DB接続またはODBCドライバに対応する各種データベースへ直接接続可能で、作成したSQL文を実際にテスト実行できる。画面は3ペイン構成で、左側には複数のSQLソースファイルを管理できるファイラー、中央には複数ファイルをタブで切り替えて表示できるエディター、右側には接続したデータベースの構造をツリーとリストで表示する“データベースエクスプローラ”が表示される。 SQL文の作成時は、さまざ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く