C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: SQLServer の列追加方法について


(過去ログ 161 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■93022 / inTopicNo.1)  SQLServer の列追加方法について
  
□投稿者/ 犬夜叉 (27回)-(2019/11/15(Fri) 08:45:49)

分類:[ネットワーク全般] 

SQLServer で取得した DataTable に後から
処理で使用するためにColumns.Add() で列を増やしています。
(C#使用)

どうせならSQLでと思って

SELECT A, B, C
FROM  table
↓
SELECT A,B,C,'' AS D, '' AS E
FROM  table

のように DとEのデフォルト値を追加したのですが、
データ数が多いため、取得するのに25秒かかって使い物になりませんでした。

そこで以下のようにすると早くなったのですがこれは正解(一般的)なのでしょうか?
ON で 1=1 とするのがなんか違和感があるのですが
ON の後ろに true を入れても動作しませんでした。
もっとしっくりくるやり方とかあるのしょうか?


WITH
ADD AS (
  SELECT '' AS D, '' AS E
)

SELECT A,B,C,D,E
FROM  (
    SELECT A,B,C
    FROM  table
    ) AS T1
FULL  OUTER JOIN ADD
     ON 1 = 1

引用返信 編集キー/
■93025 / inTopicNo.2)  Re[1]: SQLServer の列追加方法について
□投稿者/ WebSurfer (1969回)-(2019/11/15(Fri) 09:48:32)
No93022 (犬夜叉 さん) に返信
> SQLServer で取得した DataTable に後から
> 処理で使用するためにColumns.Add() で列を増やしています。
> (C#使用)

そうするのが正解だと思うのですが。

> どうせならSQLでと思って

SqlDataAdapter で TataTable に Fill するときにテーブルに存在しない列も作りたい
ということですか? そうだとして、DataTable の型とか名前はどうしたいのでしょう?

ところで、そうしたい理由を書いてもらえませんか? そうしていただけると、別の観点
からのコメントも得られるかもしれませんので。 

引用返信 編集キー/
■93027 / inTopicNo.3)  Re[1]: SQLServer の列追加方法について
□投稿者/ 大谷刑部 (61回)-(2019/11/15(Fri) 10:12:15)
No93022 (犬夜叉 さん) に返信
> データ数が多いため、取得するのに25秒かかって使い物になりませんでした。
具体的に何件程度ですか?
「Datatable」がADO.netのDatatableと仮定すると、同じSQLでも(厳密にはSQLもどきですが)
DBのselectより時間はかかります。
100万件とかの「大量データ」であれば、datatableに事前にキー項目を設定しておけば、
キー項目での条件抽出は多少速くなります。
全件検索の場合はあまり効果ないでしょうが。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -