小编His*_*Saw的帖子

SQL在其他表中获取特定日期的最近行

有桌子TAB_A:

  ID  |    Date    |   Value  
--------------------------------
  101 | 2014-03-01 | 101000001
  101 | 2014-03-03 | 101000003
  101 | 2014-03-06 | 101000006
  102 | 2014-03-01 | 102000001
  103 | 2014-03-01 | 103000001
Run Code Online (Sandbox Code Playgroud)

而且,例如,另一个表中的这条记录TAB_B:

    ID  |    Date    |  TAB_A.Id 
-----------------------------------
  40002 | 2014-03-05 |     101 
Run Code Online (Sandbox Code Playgroud)

我需要得到最近(最近)TAB_A.ValueTAB_B.Date现场(在这种情况下是"101000003"而不是"101000006").

我一直在寻找类似场景的其他回复(比如这个),但这并不是我需要的.

有什么建议?在此先感谢您的帮助.

编辑:我忘了提到它TAB_A有超过200K的记录,并TAB_B有超过55M的记录.

sql sql-server

2
推荐指数
1
解决办法
8390
查看次数

StreamReader的性能很差,同时读取非常大的文件

我需要在C#应用程序上同时逐行读取四个非常大(> 2 Gb)的文件.我正在使用四种不同的StreamReader对象及其ReadLine()方法.同时从四个文件读取线条时性能受到严重影响,但是每个文件到达EoF时都会变得更好(有4个文件的性能<带3个文件的性能<带有2个文件的性能......).

我有这个(简化,假设只有两个文件,更简洁的例子)代码:

StreamReader readerOne = new StreamReader(@"C:\temp\file1.txt");
StreamReader readerTwo = new StreamReader(@"C:\temp\file2.txt");

while(readerOne.Peek() >= 0 || readerTwo.Peek() >= 0)
{
    string[] readerOneFields = readerOne.Peek() >= 0 ? 
        readerOne.ReadLine().Split(',') : null;
    string[] readerTwoFields = readerTwo.Peek() >= 0 ? 
        readerTwo.ReadLine().Split(',') : null;

    if (readerOneFields != null && readerTwoFields != null)
    {
        if (readerOneFields[2] == readerTwoFields[2])
        {
            // Do some boring things...
        }
    else if (readerOneFields != null)
    {
        // ...
    }
    else …
Run Code Online (Sandbox Code Playgroud)

c# io performance streamreader

2
推荐指数
1
解决办法
679
查看次数

标签 统计

c# ×1

io ×1

performance ×1

sql ×1

sql-server ×1

streamreader ×1