【发布时间】:2013-01-25 20:22:36
【问题描述】:
我有一个逗号分隔格式的文本文件。每行有两列,每列都有整数值。喜欢
12334,23433
23234,45663
234422,324545
324543,23433
143233,23433
.....
重复第二列中的值。我需要完成的是找到第一列中第二列具有相同值的所有值并将它们表示为一行。就像上面的数据:
23433 12334,324543,143233
45663 23234
324545 234422
我所做的如下:
- 使用逗号 (,) 将文本文件导入 SQL Server 表 分隔符。
- 从每行代码中读取文本文件。
- 以逗号 (,) 为基础分割行并使用第二列值发送 查询 SQL 表。
- 将结果存储在字典数据结构中,其中键是第二列 并将所有结果连接到第一列值。
- 处理完毕,遍历字典,写入文件。
这肯定花费了太多时间。我已经用 C# 编写了代码。 T-SQL 中的任何解决方案都可以正常工作。
任何优化它的帮助。
【问题讨论】:
-
向我们展示您正在使用的查询怎么样?
-
我对此一无所知,但我认为如果您只检查每个数字中的第一个字节并照亮其他所有内容并将其放入新表中,您将能够大大缩短检查时间,然后释放原始表(空闲内存),然后用第二个字节重复该过程,依此类推,直到您完成了最大数字大小的字节数?
-
@leppie - 索引第一列感谢您的回复
-
一千万行?那不是大数据:P - “小数据是适合 RAM 的时候。大数据是因为不适合 RAM 而崩溃的时候。” @DEVOPS_BORAT
-
@Malik 为什么要为第一列创建索引?您正在按第二列分组/排序,因此第二列需要索引。
标签: c# sql-server tsql large-data