※ かなり前の記事ですが、未だに引用されるので一応追記しておきます。タイトルと画像がキャッチーなのはちょっと反省していますが、これを見てBigQuery使うのを躊躇している人は多分あまり内容を読んでいないので気にする必要はないです。自分は当時の会社でも今の会社でも個人でも普通にBigQuery使っていて解析用データなどはBigQueryに入れる設計をよくしています。また、アドベントカレンダーだったのでネタっぽく書きましたが事前に想定できる金額です。 ※ 代役:プロ生ちゃん(暮井 慧) 巷のBigQueryの噂と言えば「とにかく安い」「数億行フルスキャンしても早い」などなど。とりわけ料金に関しては保存しておくだけであれば無視できるほど安く、SQLに不慣れなプロデューサーがクエリを実行しても月数ドルで済むなど、賞賛すべき事例は枚挙に暇がありません。 しかし、使い方によってはかなり大きな金額を使
前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検
Android のサンプルやチュートリアルでは、アプリ実行時に SQLite データベースを作成してデータの追加や更新、削除などを行っているのがほとんどです。 しかし、あらかじめ作成しておいた SQLite database をアプリに仕込みたい場合があります。 そこで、ここでは sqlite3 など使って作成した自分の SQLite database ファイルを、アプリの asset に入れ、初回起動時にアプリのシステムデータベース領域にコピーする方法を紹介します。 1. SQLite database ファイルを用意する 私は Ubuntu 派なので普通に sqlite3 を使います。(Windows とか Mac はよくわかりません... これとか? SQLite Database Browser) 主テーブルの他に android_metadata という名前のテーブルを作成します
NeoDatis ODB is a very simple Object Database that currently runs on the Java, .Net, Google Android, Groovy and Scala To avoid Impedance mismatch overhead between Object and Relational worlds, give a try to Neodatis ODB. NeoDatis ODB is a new generation Object Database: a real native and transparent persistence layer for Java, .Net and Mono. Object because the basic persistent unit is an object, n
Hibernate、ActiveObjects、S2Dao、Apache Cayenne、iBATISなどORMフレームワークが群雄割拠状態なJavaですが、使い方を勉強したり設定ファイル書いたりするのが少し面倒かなと思っている人がいるかもしれません。 特にちょっとしたアプリケーションを作るならば、素のJDBCを使うのは嫌だけど、それに近い形で使えるORマッパーが欲しいと思うことがたびたびありました。 ということで以下の条件でJDBCを薄くラッピングしているJavaのライブラリを探して発見したものを紹介します。 レコードをオブジェクトに自動的にマッピングしてくれる できるだけSQLを書く量を減らすことができる いざとなったら生SQLを書くことができる 導入が簡単である 依存ライブラリが少ない 以下に挿入、検索、更新、削除を実行するコードを書いています。 今回はDBがMySQLだったので、M
Persist is a Java-based ORM/DAO tool. It provides only the minimal amount of functionalities necessary to map objects or maps from database queries and to statement parameters. Persist works around a java.sql.Connection object. This means that it does not care about customer query languages (it uses plain SQL with placeholders, as PreparedStatement objects use), connection pool handling, transacti
RailsのActiveRecordを意識したJavaの軽量ORMです。Entityとしてインターフェースを定義するだけで一通りのDB操作が可能で、XMLによる設定ファイル等なしで非常に手軽にORMを使うことができます。本家は以下です。 https://activeobjects.dev.java.net/ 現在のバージョンは 0.8.2 となっています。 プロジェクトの準備 ここでは Maven にてプロジェクトを準備することにします(必要なライブラリも少ないため個々にjarを入手したほうが楽かもしれません)。 以下のコマンドでプロジェクトの雛形を作成します。 > mvn archetype:generate Choose a number:・・ 15: :15 Define value for groupId: : etc9 Define value for artifactId: :
CakePHPで作成したアプリケーションに対して、Javaアプリケーションから簡単なDB操作(実際はselectだけできればOK)をする必要があって、生のSQLを書くか、それともいい機会だしORマッパのライブラリを勉強がてら使ってみるか、、なんて悩んでいました。保守性を考えるとやっぱり生SQL案は無しで、ORマッパを使うことにしたのですが、Hibernateはどうもリッチすぎる印象があってなかなかやる気が進みませんでした。大規模アプリ開発ならまだしも、今回は上で書いた通り、最低限の参照だけできればそれで事足りる状況だったので、そのためだけにわざわざ設定用のXMLを書くのは気が引けていたのです。 3分で始められるORマッパ 3分間クッキングじゃないですけど、それくらい手軽に操作できるものをずっと探し続けていたら、ActiveObjectsなるプロジェクトに辿り着きました。 AcitiveOb
クエリーキャッシュには、クライアントに送信された対応する結果とともに、SELECT ステートメントのテキストが格納されます。あとで同じステートメントを受け取った場合、サーバーはそのステートメントを再度解析して実行する代わりに、クエリーキャッシュから結果を取得します。クエリーキャッシュはセッション間で共有されるため、1 つのクライアントで生成された結果セットを、別のクライアントによって発行された同じクエリーへの応答で送信できます。 クエリーキャッシュは、あまり頻繁に変更されないテーブルがあり、それに対してサーバーが多くの同一のクエリーを受け取る環境で役立つことがあります。これは、データベースの内容に基づいて、多くの動的ページを生成する多くの Web サーバーに一般的な状況です。 クエリーキャッシュは古くなったデータを返しません。テーブルが変更されると、クエリーキャッシュ内の関連エントリがフラ
Open Database Connectivity (ODBC) は、関係データベース管理システム (RDBMS) にアクセスするための共通インタフェース (API)である。 データへのアクセスを統一化することを目的としており、たとえばクライアント/サーバ型ではないMicrosoft Accessの管理するデータベースファイル (MDB) や、そもそもRDBMSではないCSVファイルへのアクセスなども、それに対応するODBCドライバがあれば、他の一般的なデータベースへのアクセスするのと同様な方法で利用することが可能になる。 ODBCは、主にWindows上で利用されることが多いが、Linux、UNIXなどで利用されるケースもある。 従来、データベースアプリケーションは、RDBMSベンダーが製品とともに配布するユーティリティや埋め込みSQLにより開発されてきたが、C言語上のAPIレベルで統
2008/8/2519:15 【VB.NET】SMOを利用してSQL Serverのサーバ一覧を取得する VB.NET等のプログラムからSQL Server 2005の管理(バックアップやリストア等)をプログラムで制御する場合、SMOを利用します。 今回は、このSMOを利用してネットワーク上にあるSQL Serverのサーバの一覧を取得する方法について説明します。 SMOを利用する場合、参照設定でライブラリを追加する必要があります。 サーバの一覧を取得するには、Microsoft.SqlServer.Management.smo.SmoApplication.EnumAvailableSqlServers()メソッドを利用します。 このメソッドは、以下の情報をDataTableの形式で返します。 ・Name(サーバ名+インスタンス名) ・Server(サーバ名) ・Instance(インス
共に本連載執筆開始時点での最新安定バージョンですが、ある特定のバージョンに特化した内容を記述する予定はないため、基本的にはPostgreSQLはバージョン8.1系、MySQLはバージョン5.0系の内容としてご理解ください。 また、PostgreSQL/MySQLともに様々なOS上で動作可能ですが、特に断りのない場合はLinux版となります。 PostgreSQLは、1980年頃にUCB(カリフォルニア大学バークレイ校)の研究プロジェクトにて開発されたPOSTGRESというRDBMSが前身です。その後、1995年に同校の大学院生によりPostgres95としてリリースされ、現在の開発チームであるThe PostgreSQL Global Development Groupがこの開発を引き継いだのは1996年です。その際に、名称がPostgreSQLに改名され、ソースコードを公開し、現在もコミ
「わからないことを信じているから、苦しむのさ。迷信はだめだ。」 スティービーワンダー スティービーワンダーは、もちろんデータベースの更新のことを言っていたわけではないでしょうが、この言葉は確かにこのテーマにも当てはまります。ADO.NETのデータベース更新機能は非常に強力ですが、.NETがベータ版だったころに内外のニュースグループに寄せられた疑問や、セミナーなどで出された質問からすると、その強力な機能を本当に理解している開発者はごくわずかしかいないようです。 これまで目にしたADO.NETコードの中には、更新ロジックの生成をCommand Builderオブジェクトに頼っているものが少なくありません。開発者が自分で更新ロジックを用意した方がよいという注記が付いているコードもありますが、なぜそうするべきなのか、どうすればそうできるのかという説明はほとんどないのが現状です。 コードのしくみを聞
最近、型付きDataSetをDataGridViewのデータソースにすることに行き詰まりを感じています。 MSAccessのオートフォーム程度のテーブル直接メンテ画面のようなものであれば使用できるかも しれませんが、業務アプリのように[確定]ボタンを押すまではあくまで"途中経過"であるような プログラムの場合、型付きDataSetでの各種の制約(型や主キー制約など)が邪魔で、どうにか それを回避するようなコードを書こうとしているのですが本末転倒のような気がしています。(本来は ビジネスロジックの記述に専念すべきものが、型付きDataSetの制約を回避するための ロジックに力を注いでいるような始末) VB6なんかで開発していた頃は「画面(Grid)上の項目はあくまで単なるワークであって、[確定]ボタンで DBの制約にあうようなチェックを行い、ロジックでDBへ反映。」というパターンが主なロジッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く