我正在使用一个宏,该宏每天都将数据写入SQL表。问题是通常我要上传超过30万行,而Macro的运行速度非常慢(超过60分钟)。无论如何,有什么办法可以加快这个过程?在代码的下面,这正是Macro大部分时间所花费的地方:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
var circleView = FindViewById<MyCustomView>(Resource.Id.circleView);
ValueAnimator valueAnimator = ValueAnimator.OfInt(0, 0);
valueAnimator.SetDuration(2000);
valueAnimator.AddUpdateListener(new AnimatorUpdateListener(this, circleView));
valueAnimator.Start();
}
private class AnimatorUpdateListener : Java.Lang.Object, ValueAnimator.IAnimatorUpdateListener
{
private MainActivity mainActivity;
private MyCustomView circleView;
public AnimatorUpdateListener(MainActivity mainActivity, MyCustomView circleView)
{
this.mainActivity = mainActivity;
this.circleView = circleView;
}
void ValueAnimator.IAnimatorUpdateListener.OnAnimationUpdate(ValueAnimator animation)
{
circleView.setValue((int)animation.AnimatedValue);
}
}
答案 0 :(得分:1)
问题在于此循环将数据逐行发送到服务器,并为每个服务器运行查询。您需要将整个内容作为一个记录集发送,并通过一个查询将其插入。
由于您没有提供您所拥有的SQL DB类型,因此我只能对Microsoft SQL Server提出一个建议:首先将记录集导出到.csv文件,然后运行“ BULK INSERT”而不是运行“ INSERT INTO”查询