小编O.O*_*O.O的帖子

删除重复数据的最快技术

在搜索了stackoverflow.com之后,我发现了几个问题,询问如何删除重复项,但没有一个能解决速度问题.

在我的情况下,我有一个包含10列的表,其中包含500万个确切的行重复项.另外,我在10列中的9列中至少有一百万行具有重复.我目前的技术是(到目前为止)3个小时删除这500万行.这是我的过程:

-- Step 1:  **This step took 13 minutes.** Insert only one of the n duplicate rows into a temp table
select
    MAX(prikey) as MaxPriKey, -- identity(1, 1)
    a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i
into #dupTemp
FROM sourceTable
group by
    a,
    b,
    c,
    d,
    e,
    f,
    g,
    h,
    i
having COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)

下一个,

-- Step 2: **This step is taking the 3+ hours**
-- delete the row when all the non-unique columns are …
Run Code Online (Sandbox Code Playgroud)

sql sql-server etl sql-server-2008

7
推荐指数
1
解决办法
3293
查看次数

更新语句运行时间过长与否

我刚开始使用这么多数据(2000万行)而且我不知道在查询持续时间方面我应该期待什么:

update table set field = '1234'  
Run Code Online (Sandbox Code Playgroud)

现场没有索引.这个声明花了25分钟.数据库设置为"简单恢复".25分钟似乎太长了吗?表有9列,小数据类型<50 varchar.

sql sql-server sql-server-2008

7
推荐指数
1
解决办法
4984
查看次数

如何强制Universal Application释放内存?

创建了一个泄漏内存的简单应用程序:

视图

<Page
   ...
    x:Class="App3.MainPage"
    mc:Ignorable="d">
    <StackPanel>
        <Image Width="300" Height="200" 
            Source="/Assets/BBlHOiv.jpg"></Image>
        <Button Click="Button_Click">Navigate</Button>
    </StackPanel>
</Page>
Run Code Online (Sandbox Code Playgroud)

代码背后

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();            
    }

    private void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        this.Frame.Navigate(typeof(MainPage));
    }
Run Code Online (Sandbox Code Playgroud)

每次单击该按钮时,代码都会导航到同一页面上,该页面上有一个图像~400KB.如果我继续快速单击按钮,则每次单击或几次单击都会使内存上升.内存不会被回收,或者至少不能及时回收.在真实的应用程序中,随着更复杂的页面和更复杂的导航(包括圆形导航),这可能成为一个大问题.问题是,如何强制应用程序释放内存?理想情况下,一旦不再需要/显示页面.

我试过以下的事情没有运气.

#1清除帧的导航堆栈

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        base.OnNavigatedFrom(e);
        this.Frame.BackStack.Clear();
    }
Run Code Online (Sandbox Code Playgroud)

#2使用MVVM时,将DataContext设置为null(在XAML标记中设置datacontext时)

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        base.OnNavigatedFrom(e);
        this.DataContext = null;
        this.Frame.BackStack.Clear();
    }
Run Code Online (Sandbox Code Playgroud)

c# xaml memory-management win-universal-app windows-10

7
推荐指数
1
解决办法
900
查看次数

页面输出缓存是否存储在ASP.NET缓存对象中?

我需要在我的asp.net应用程序中启用缓存,但我不想使用webserver的内存来保存缓存对象.如果我为输出缓存添加页面指令,页面是否会存储在asp.net缓存对象中?

谢谢!

asp.net caching asp.net-4.0

6
推荐指数
1
解决办法
1976
查看次数

为什么WPF支持多绑定,但不支持silverlight?

Multibinding是WPF中非常强大的功能,为什么Silverlight不支持它?他们从来没有为它添加支持?它太大了,不适合.NET框架?它会在Silverlight 5中出现吗?有谁知道答案?

谢谢!

silverlight wpf multibinding

6
推荐指数
1
解决办法
1852
查看次数

如何使用Field <T>和Type?

我有一个方法,确定一个列的最小和最大DataTable:

public void GetMinMaxRange( DataTable data, string valueColumnName )
{
   var min = data.AsEnumerable().Min(m => m.Field<double>(valueColumnName));
   var max = data.AsEnumerable().Max(m => m.Field<double>(valueColumnName));
}
Run Code Online (Sandbox Code Playgroud)

我想重构这个:

public void GetMinMaxRange( DataTable data, string valueColumnName )
{
   DataColumn column = data.Columns[valueColumnName];
   var min = data.AsEnumerable().Min(m => m.Field<column.DataType>(valueColumnName));
   var max = data.AsEnumerable().Max(m => m.Field<column.DataType>(valueColumnName));
}
Run Code Online (Sandbox Code Playgroud)

我需要确定数据类型并使用它而不是硬编码m.Field<double>.这该怎么做?

更新 至于我为什么要计算最小值和最大值之间的差异

    public static double/decimal/int GetMinMaxRange<T>(DataTable data, 
          string valueColumnName) where T : IComparable<T>
    {
        DataColumn column = data.Columns[valueColumnName];
        var min = data.AsEnumerable().Min(m => …
Run Code Online (Sandbox Code Playgroud)

c# generics linq-to-dataset

6
推荐指数
1
解决办法
1088
查看次数

使用NTILE计算百分位数?

需要计算每个学生的百分位数(第1至第99百分位数),并获得单个测试的分数.

我对NTILE的msdn定义感到有些困惑,因为它没有明确提到百分等级.我需要某种保证NTILE是用于计算百分等级的正确关键字.

declare @temp table
(
  StudentId int,
  Score int
)
insert into @temp
select 1, 20
union
select 2, 25
.....

select NTILE(100) OVER (order by Score) PercentileRank
from @temp
Run Code Online (Sandbox Code Playgroud)

它看起来对我来说是正确的,但这是计算百分等级的正确方法吗?

t-sql sql-server sql-server-2008

6
推荐指数
2
解决办法
2万
查看次数

Moq - 如何模拟Web服务调用?

using下面打,我不想竟然打的外部资源.我想测试someResult和使用它的代码,但每次我运行我的单元测试时,这段代码仍然试图点击真正的Web服务.我如何使用moq伪造对Web服务的真实调用,但不使用模拟其他代码?

public IMyInterface.SomeMethod()
{    
     // hits a web service
     using ( mySoapClient client = new mySoapClient() )
     {
          var someResult = client.DoSomething();
       ...
       ...
     }
}


[TestMethod()]
public void SomeMethodTest()
{
    IMyInterface target = new MyInterface();
    target.SomeMethod();

    // Assert....
}
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq

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

VS2012 - 添加测试缺失?

在VS 2010中,我可以右键单击一个方法,让MSTest为我创建一个单元测试.VS2012 pro中的这个功能在哪里?

unit-testing visual-studio-2012

6
推荐指数
2
解决办法
4652
查看次数

6
推荐指数
2
解决办法
2116
查看次数