1 :
仕様書無しさん:
いいか、ここにSQL系のDBがあり数値型のフィールドにSQLで数値データを登録するプログラムがあったとしよう。
その数値データはデータソースのプログラムの段階ではコンパイル済みのバイナリデータである。
しかしそれをわざわざSQL用にテキストに変換してDBエンジンに送る訳だ。
送った先のDBではやはりテキストを解析して数値データに戻す処理がなされる。
そんな穴を掘って埋めるような事が今世界中のSQL系DBを使うシステムの内部で行われている訳だ。
なぜ数値を数値のまま送らない?
(゚Д゚)ハァ?
3 :
仕様書無しさん:2007/05/26(土) 07:41:03
つ【オブジェクトデータベース】
リプレイス時に十分な検討期間が取れず
結局過去の仕様のまま移植するハメになると
汎用機まがいの固定長データ大盛りなシステムを
最新RDB+.NET系言語で構築しなきゃならないこともざらにある
上流がアレな業界の仕事だからあきらめろ
>>1
5 :
仕様書無しさん:2007/05/26(土) 09:19:57
XMLDBなんてのはもっと酷い。DBの実体がテキストだからな。
6 :
仕様書無しさん:2007/05/26(土) 09:25:45
つ【CLOB】
7 :
仕様書無しさん:2007/05/26(土) 21:18:16
穴を掘って埋めるだけで金がもらえるんだから良いではないか?
自分で掘った穴に落ちたり、人の掘った穴どころか溝に落ちたり、
調子に乗って掘ってたら地雷を掘り当てたりするから嫌なんだよなー。
ワリィ。その地雷追加したの俺だわ。
それくらいトランザクションの仕事量の中では屁でもない。
それ以前にSQLをプログラムに埋め込むこと自体を否定しなさい
12 :
仕様書無しさん:2007/05/27(日) 05:53:17
14 :
仕様書無しさん:2007/05/27(日) 12:44:55
O/Rマッパとか。
マッパって言うと真っ裸ーニバルみたいな感じがして嫌
a--------------------------
のmmだ
17 :
仕様書無しさん:2007/06/13(水) 17:33:32
本来のデータ入出力の処理で言うとDBに直接コネクトしてバイナリデータの出し入れをして切断する
のが自然(ADOみたいな)なわけだが、
何の訳かSQLなんて非効率な方法が普及してしまって。
馬鹿でもわかる英語にしてやらないと駄目なんかね?
SQLのせいで関係演算が全く抽象化されていない(できない)のも問題だね。
する必要もないと思った。
バインド変数でバルク転送すればすげー速いよ。
20 :
69式フリーPG ◆hND3Lufios :2007/06/27(水) 20:08:48
そして、65535行でずっこける。(OCIの場合)
…で、
>SQL系のDB
って何さ。
>>17 阿呆はファイルにでも書いとけ。
SQLを使ってデータを取得するDBって事だろう。
リレーショナルデータベースという言葉が出てこなかったんだよ。
23 :
仕様書無しさん:2007/10/25(木) 21:50:04
>>1 PreparedStatement の場合どうなりますか?
それに加えてOracleのハード解析というプロセスがあるのだけれど…
25 :
仕様書無しさん:2007/10/27(土) 01:52:49
システムは変換機能の追加でどんどん重くなるの法則
26 :
仕様書無しさん:2007/12/07(金) 10:27:19
>リレーショナルデータベースとSQLを使ってデータを取得するDB
定義が全く違うぞ。
SQLを使う以上穴を掘って埋める作業は永久に無くならない。
こりゃ新しいDB作るしか無いな。
なんでメモリ空間みたいにDBに直接アクセスするインタフェースが無いんだろう。
そこで関係演算も直接実行できれば良いのに、
いちいちSQL書いてjoinとか打たなきゃ行けないのか。
27 :
仕様書無しさん:2007/12/07(金) 10:32:30
それと多分PreparedStatementとかORマッパとか使ってもDB側が
JDBC経由ではSQL以外の接続を認めてないと思うから、
最終処理はSQLを介してると思うけど、違うのか?
MySQLは多分そう。Oracleは知らん。
29 :
仕様書無しさん:2007/12/08(土) 03:20:51
1の言うような問題点が解決したDBエンジンが誕生したとして、どんだけーのパフォーマンス改善が見込めるだろうか?
30 :
仕様書無しさん:2007/12/08(土) 08:53:48
パラメタライズドクエリは、バイナリのデータを送ってるんじゃないの?
32 :
仕様書無しさん:2007/12/08(土) 11:08:46
>>1にはAS/400(iSeries)+RPGの開発をお勧めするわ。
データをテキストに変換した場合、負担増となる個所は
CPU負荷
I/O負荷
ネットワーク負荷
の3点が考えられる
CPU負荷が問題になる可能性は、経験上除外して良い
I/O負荷に関してはデータ変換後にHDDに書き込む為、関係ない
ネットワーク構成
(a)データベース --- (b)アプリケーション --- (c)クライアント
T. a-b-cが単一サーバの場合
ネットワーク負荷は発生しない
U.a-bが単一サーバの場合
ネットワーク負荷は発生しない
V.a-bが別サーバの場合
高速なLANで接続されている為、問題なし
以上、どう考えてもSQLをバイナリに置換してもメリットは発生しません
SQLはそもそもが数学的な理論からはじまったひとつの宗教。
オブジェクト指向という宗教となじむかどうかなんて考えていない。
35 :
仕様書無しさん:2007/12/08(土) 17:26:46
事実、本来する必要の無いデータ型変換にどんなに短くても処理時間がかかってるのは間違い無い。
それが全世界のサーバーで毎日数億回のトランザクションがなされていれば数ナノ秒のロスも問題になってくる。
そうナノ?
そうナノ。
38 :
仕様書無しさん:2007/12/09(日) 08:16:51
そんなどうでも良いロス気にして仕事してたら何の仕事もできなくなるよ。
SQLは簡単だから、チームのみんなが理解できるから、開発効率が上がる、工数が減る。
そのメリットだけ見てりゃ良いじゃないか。もっと早い方法があったとして、それを理解するのに工数が増えるなら
誰も採用しないよ。バカ。
39 :
仕様書無しさん:2007/12/09(日) 08:19:03
アメリカや海外のシステムがどんな仕様だろうが関係ないじゃないか。
俺らに重要なのは目の前の仕事をいかにこなすかだ。
40 :
仕様書無しさん:2007/12/09(日) 23:06:23
>>38-39 お前はあらゆるシステムをPHPとVBで作ってれば良いよ。
41 :
仕様書無しさん:2007/12/10(月) 00:00:23
それいうなら
HTTPもFTPもメールも全てテキストベースだぞ
42 :
仕様書無しさん:2007/12/10(月) 00:13:46
まぁそれより、専門卒の頭の俺には
なんであんなに高速に検索できるのかがわからん
>>1 そんな亊言ったら、俺らの仕事は全てが全て 穴掘って掘った穴埋めてを繰り返してるだけだろ?
>>42 おまいは電話帳の中から相手の電話番号を何分以内で見つけられる?
テキストベースからバイナリベースに変更しても字句解析、意味解析は必要になるので
劇的に速くなるわけじゃないぞ
昔のBASICでいえば変数は7文字より1文字のほうが速いもんね!っていうレベルだ
46 :
仕様書無しさん:2007/12/11(火) 01:59:07
いや、1が言ってるのはコンパイル後の話だから次元が違う。
>>41 その通り、インターネットを作った奴らが、
馬鹿でハードウェア的な効率重視の発想ができなかったから、
あらゆる分野で、無駄が蔓延ってる。
インターネット上には暗号はいかなる種類でも流しちゃダメよ♪
いいから日本語で書けよ
チョンは日本語書けるようになってから出直してこい
49 :
仕様書無しさん:2007/12/11(火) 04:25:14
いいからどうしたら良いのか、代替案を挙げろよ。
現状に不満があるんだろ?
50 :
仕様書無しさん:2007/12/11(火) 19:32:20
そうだな、例えばこのようなSQLの実行にあたって
select taA.fld1,taA.fld2,taB.name from taA left join taB on taA.bid = taB.id where fld3 < 5000;
テーブルの選択、行の抽出、値セットの取得、を別の関数にしたい。
javaっぽく書いたら
//テーブルの選択
DbObject.selectTable(taA,taB);
DbObject.relateTables(taA,taB,tableOperate.leftJoin,taA.bid,taB.id);
//行の抽出
DbObject.extract(taA.fld3,tableOperate.lessThan,5000);
//値セットの取得
Row[] = DbObject.getValueSet(taA.fld1,taA.fld2,taB.name);
みたいな感じかな。こういうインターフェースを標準化してDB側に持たして欲しい。
そもそもSQLはこういった本質的に異なる操作を一緒くたにしているのが気に食わない。
51 :
仕様書無しさん:2007/12/11(火) 20:12:35
select再現すんのが偉くダルそうだ
GROUP BYしたサブクエリとかどういう関数にするんだろう?
普通にSQLを記述する方が効率的かつ可読性が高いと思うが。
>>53 そういう凝った SQL は書かない人なんじゃないか?
単純な構文でできることしか SQL でやらなくて、細かいデータ操作は
言語の中でごりごりやってる。
1万件中、9999件更新するような処理は言語でやってもいい様な気がするけど、
普通にデータを抽出して照会やら更新する作業はSQLが一番効率的だと思う。
可読性もあるけど速度優先しなきゃいけないような場合もあるしな
運用次第だろうけど使い分けが必要じゃね?
使い分けるとしても、あの
>>50の様な言語仕様では
可読性と速度も両方期待できないが。
速度命ならRPGでも使えって話になりそうだし。w
可読性とか言ってる奴は永久にVBとPHPでシステム書いてれば良いよ。
SQLの唯一で最大の利点は馬鹿でもわかるという点だから、速度なんか
どうでも良いんだよ。
59 :
50:2007/12/12(水) 19:40:28
>>53 集計関数はDbObject.extractの後で
DbObject.sum(taA.fld3);
のようにして、定義してやれば良い。
50のソースを見て察しが付くとは思うがテーブルもフィールドもすべてオブジェクト化されているので、
サブクエリの場合は事前にテーブルオブジェクトを作る際に50の手順で作ったサブテーブルをテーブルオブジェクトにして
selectTableで指定してやれば良い。
たかだか5行のソースに可読性とか言ってる馬鹿には理解できないかもしれないが、
このような直接DBを操作するインターフェースがあればどんな複雑なリレーションの操作も
抽出条件もプログラムソースの側で扱うことができる。
SQLで複雑な抽出条件をfor loop等で構成するときにSQLがやたら長くなって、
エラーの出所がわからず苦労した経験は誰にでもあるだろう。
60 :
仕様書無しさん:2007/12/12(水) 19:52:28
このスレマ板とは思えないほどレベル低いなw
61 :
50:2007/12/12(水) 19:52:34
SQLが関係演算の実装として不完全であることはRDBMSの生みの親のEdgar Codd
も指摘していた事実だ。
唯一の関係演算の標準化された実装であるSQLが不完全ならせめてDBエンジンを直接操作するインタフェースを用意して欲しい。
>>1はMSのADOのような実装の標準化を求めているようだが、ADOには関係演算に関する実装が無い。
俺はDBエンジンがSQLを解析した後にやっている操作を全てプログラムソースから直接実行できるようにして欲しい。
わざわざ不完全なSQLを介さないといけないのはRDBMSの理想からも外れてるし、
本来できるはずの操作もできなくしてしまっている。
OOPとRDBMSの親和性が無いのもそこに原因があると思う。
>SQLで複雑な抽出条件をfor loop等で構成するときにSQLがやたら長くなって、
それはSQLが悪いと言うケースよりも設計がタコなケースがほとんどだと思うが。
あとover(partition by hoge_id)みたいなのはどーすんの?かなり助長になると思うけど。
正直なところSQL書ける人間からするとOOP風味ってウザいんだけど。
そして、おそらくRDBMS内SQLのオプティマイザのほうが
一般的なプログラマの9割以上効率的な実行計画を作成していると思う。
おそらく50の人はレアな1割に入る人間なんだろうと思うけどサ。
漏れは金融系の仕事しているのだけども周りのCOBOLerとかは
99%がヴァカって印象があるぞ。
そいつらにOOPさせるくらいならSQL使わす方が万倍はマシだ。
なあ、SQL本来の目的って、DBに対話アクセスするためのものじゃなかったの?
スピード云々なんて次元が違う話だと思うんだが。
64 :
仕様書無しさん:2007/12/14(金) 19:49:18
全てのテーブルに削除フラグと削除日時、作成日時、最終更新日時の列があって、レコード数が億とかなってる。
これって普通なの?
間違いなく普通でない。
前半分はよくあるけど億はすごいな
年金とかかw
67 :
50:2007/12/15(土) 00:08:44
>>62 そんなオラクル依存の構文はSQLですらない。どんな機能であれ、OOPである限り、
いくらでも拡張できる。
階層的クエリはどうすんの?
>>67 あのoverはOracle依存ではなくDB2なワケだが。
50は本当にRDBMSを使った開発したことあるのか?
単にSQLが嫌いなDQNプログラマにしか見えんが。
いくらでも拡張できる、と言うならばSQLも同様にいくらでも拡張できるだろ。
ユーザー関数の記述にはSQLはもちろん、50の好きなOOPのC++、Java
で作成できるしな。w
70 :
仕様書無しさん:2007/12/15(土) 09:35:39
SQLの素晴らしさを解らない奴は経験不足の学生あがりだけだろ
ストアド使ってもまだパフォーマンスが酷いのって設計が悪い場合がほとんど
反論ある?
>わざわざ不完全なSQLを介さないといけないのはRDBMSの理想からも外れてるし
>>50がホザいているけど、どうしてコイツはAS/400で開発しないんだ?
OSがDBと融合されているから
>>1や
>>50の様な自称神プログラマーの
脳内理想通りにDBエンジンを直でドライブできるぞ。
正直漏れは飽きたし生産性が低いのでSQLマンセーだが。
集合を理解していない奴にSQLを書かせるな
カーソルで1行ずつ取り出して
CSVよろしく全行全カラムを扱う
クソPGのネスト地獄に付き合わされるからな
(自称)集合や関係演算を理解してるお前らがSQLに不満を抱かないのが不思議だ。
完璧だが少数のアプリでしか使えない独自規格より、
不完全でもどのアプリでも応用できる共通規格がましってだけだよ。
完璧な独自規格は多くの場合、開発者のオナニー。
本当にすばらしければ他のアプリも取り入れるだろうし、そうしたら移行する。
つ LINQ
つ HANDLER構文(MySQL限定?)
実際どんな演算がSQLで不完全なのか教えて欲しいんだが。
77 :
仕様書無しさん:2007/12/20(木) 01:11:41
>73
んで、具体的になにが不満なわけ?
>>1の言ってる事は意味がよくわからんが、要するにストアドとかのDBオブジェクトとかを知らないだけに見える
さあ、全部論破できる自信があるぞ、かかってこい!スライム
本当はあれだろ、言語とかロジックに自信があったけど入社してみたらSQLができないと話にならなくてバカにされて嘆いているんだろ?
>>73 昔は小学4年くらいで集合を教えられてたんだけどなぁ
今の集合は義務教育を終えても理解できない代物なんだ?
SQLで集合を表現する事に不満を感じたことはないよ
73は何が不満なワケ?
>>77 彼はスライムではない。スライムにおびえて町を出られない町人の一人だ。
設定されたセリフ「モンスター退治?そんなのできるわけねぇよ」
を繰り返して言うだけのね。
SQLに不満を持つのはいいが。
ク ラ イ ア ン ト に と っ て そ れ は ど ん な メ リ ッ ト が あ る ん だ ?
余計な工数がかかるだろが。
メンテナンスとか含めて考えると妥協できる程度じゃねーの?
事前に登録できないSQLに対して、ストアドプロシージャは無力だよ
81 :
仕様書無しさん:2007/12/24(月) 15:04:38
どうみてもSQL否定派の負け
マイッタと言えよw
反論するなら具体的な対案くらいだせよ
アメリカの頭の良い連中が一生懸命作って市場でも受け入れられてるモノを否定するならそれなりの具体的な対案があるんだろ?
比較するモノが無いと優劣つけられん
汎用機とオープン系を比較して
オープン系が勝てるとでも思ってんの?
>汎用機とオープン系を比較して
個人的には10年前の汎用機と今のオープン系だと
オープン系の方が障害少ない現実があるな。
単に汎用機を普通に扱える人間が激減しているだけだろうけど。
>>81 SQLに代わる対案を出す
エラベ ナンデモ ホゲテーブル ドレ ホゲテーブル.シャチクバンゴウ='012345';
仮称:PYUT@言語
86 :
仕様書無しさん:2008/01/03(木) 09:02:17
>>85 ぴゅう太キタ━━━━(Д゚(○=(゚∀゚)=○)Д゚)━━━━━!!!
シャチクバンゴウにワロタ
88 :
仕様書無しさん:2008/05/03(土) 19:51:14
新スレ
89 :
仕様書無しさん:2009/01/07(水) 02:48:26
固定長データが来たらマスタと突き合わせしてインデックスを更新して
なんてやっていたときに出会ったRDBの使いやすさに衝撃うけたけどな
SQLは確か数学のなんちゃら賞取った素敵な発明じゃなかったっけ?
92 :
仕様書無しさん:2009/01/12(月) 14:48:43
SQL終わったな。これからは俺QLを使ってくだされ。
93 :
仕様書無しさん:2009/01/12(月) 15:29:17
彼女にINSERTしてもいいですか?
オマイラをDELETEしてもいいですか?TRUNCATEがいいカイ?
女子高生をSELECTしてもいいですか?
オイラのアスコをUPDATEしちゃうよ?
INSERT ERROR : 小さすぎます
95 :
1:2009/01/14(水) 02:28:27
そーいやLINQではfrom句が頭のほうに行ったんだな。少しSQLの言語仕様の
不合理性に気付いたわけだ。
>>91 なんか自分で欠点見つけて凹んだ挙句全否定しだしたらしいね
へぇ…全否定することも無いのに。
コッド博士に感謝しまくりですよ。集合の取扱いが楽で良いわ。
selectは色々できすぎて困るというのとか聞いたことがある
現行の実装でのそれはrelational algebraで定義されてる演算9種類分の仕事を一手に受けてるとか
もしselectに代わるものがあるのなら俺の頭の柔軟性がまだ残ってる間に出てきてほしい。
10年後でも新しい概念を完全に理解できる自信はない。
必要になったら頑張るけど。
sage
102 :
仕様書無しさん:2009/04/02(木) 22:21:44
オラオラage
103 :
仕様書無しさん:2009/06/20(土) 18:04:13
いやそもそもだな、selectの対象になる表の宣言(FROM句)が列(フィールド)の後にあるってどういうことだよ。
表の宣言はselect、update、insert、deleteとは独立にされるべきだと思う。
どういうこと、って
そりゃ英文法がそうだから、としか。
あの頃(いつ?)の言語は、みんなそうだったんだ。
MOVE 5 TO A
とかな。
今、SQL を作ろうとしたら、処理順、つまり、FROM句からになると思う
106 :
仕様書無しさん:2009/07/05(日) 18:51:21
すみません
誰か教えて下さいーー。
今、Accessのmdbデータを、SQL Developerで開こうとしてるのですが、
「システム表への読み取りアクセス権がありません。
AccessDBを変更してから再試行してください」
って出ちゃいます!!
ちゃんとユーザー名とパスワードは正しいのを入力してるはずなんですが、
どこをどうしたらSQL Developerで開けるようになると思いますか?
すみませんがどなたか教えて下さい!お願いします!!
SQL Developer で直接開けないんなら、Access 起動して SQL Developer の
データベースにアクセスして、mdb の内容をコピペすればいいんじゃない?
いくらなんでも Access では開けるでしょう
Access で開けなかったら、mdb に問題ありってことだ
くそ、見返したら1週以上前の書き込みか
質問スレでもないのに (つかそれ以前にイタチ) 質問しちゃう莫迦に
嬉しげに答えようなんて思うから
そういう目に遭う
1週どころじゃねーだろ馬鹿
111 :
仕様書無しさん:2009/08/20(木) 22:58:43
教えてください。
SQLプロファイラって停止させないと、プロファイラ画面閉じても動いているんですか?
113 :
106:2009/09/22(火) 12:19:20
>>108 さん
すみません、答えて頂いたのに。。気がつかなくて・・・。
あと、質問スレでもないのに質問してすみませんでした。
答えてくれた人たちありがとうございます。
今後気を付けます、申し訳ありませんでした。
114 :
仕様書無しさん:2009/10/22(木) 21:01:44
rollback
115 :
仕様書無しさん:2009/10/22(木) 22:34:08
SQLは不完全な言語である。やはりコボルが完全な言語だ。
>>115 問合せ言語とプログラミング言語を比較する、その頭の悪さは生まれつきですか?
あくまでも経済性の原理が働いているだけ。
おまえらが書かなきゃならないコードは、大量生産品!
行数を書くのが仕事だ!
量産型なら簡易化されるもんじゃないの
>>118 よい指摘だが、簡易化できる新しい道具を作るのはおまえらには無理!
うむ、だからより簡単で楽になるものを待ってるぜ?
それはそうと
いつかきっとできるよね〜 待ってま〜す♪
あのCMちょっとムカつく
子供がそんな受け身じゃイカンだろうと。
大人はもう良いの夢も希望もとっくに無くなってるから
RDBで入れ子な構造扱うなら入れ子集合モデルも視野に入れるべき
円に見立ててrgt - lftしつつ、あいだは小数点で理論上は永遠にノード追加できるし
パス的なものなら経路列挙もありかもね
そもそもRDBには苦手なとこだからxmlDBを採用するってのもありか
ってかnosqlって流行ってんの?
特に流行ってる訳じゃないよな
124 :
仕様書無しさん:2013/03/12(火) 16:03:23.52
エンジニアにSQLと帳票やらすな。あと画面デザインも。
CやVBが絶滅したみてーにRDBとSQLも早く消えてくれねーかな。
帳票も消えて欲しいがあれは必要なのは認めるから
帳票は帳票専門職に丸投げできるようにしてくれよ。
何もできない”エンジニア”は要らんよ
>>125 投げりゃ良いじゃん
投げずにやっちゃうから、ああ出来るんだなって