是什么原因导致从笔记本电脑程序抓取速度变慢?

问题描述

我有一个项目已设法从外包的服务器上保存下来,并设法使其中的大部分都能在我家里的一台笔记本电脑上工作。它具有OS Win 8.1r,VS 2017,sql Server Express 2017,并且我在C#.NET版本4.6.1中编写了我在应用程序中使用的DLL。

由于sql Server Express中不存在MS Agent,我目前每天晚上在午夜手动运行一些存储的过程,这些过程会填充一些统计信息表,然后运行索引维护过程,该过程可以重建或破坏索引并重建统计信息,然后再手动进行午夜后立即从命令提示符处重新启动BOT。

但是我注意到,如果我将笔记本电脑打开3-5天,那么每次跑步(平均)所花费的时间(平均),通过代理进行的40场比赛和每场比赛的5-20名选手越来越慢。我刚刚重新启动,因为昨晚从凌晨1点到11点才进行爬网,使用正则表达式进行扫描以获取信息并将其保存到数据库竞赛和跑步者中。

但是,如果我查看在每个新种族中存储的CreateDate时间,我都会看到一个模式。

昨天花了10个小时参加了40场比赛, 星期六花了4个小时参加了50场比赛和赛跑 星期五3小时49场比赛 星期四5小时42场比赛 星期三5小时32场比赛 星期二1小时36场

显然,随着时间的流逝,越来越多的比赛和跑步者被存储在数据库中,因此从索引,存储等中检索的时间变长了,但是重新启动很快,哈利,我今晚重新启动了它,重建了索引然后放开了它已经在7分钟内完成了7场比赛。

很明显,我没有服务器可放置此服务器,最后一次尝试导致一位老老板将其放置在法国服务器上,该服务器不允许访问在线博彩网站,我的BOT使用必发API。

>

它可以在我的笔记本电脑上正常运行,除了 -随着时间的推移,使所有种族和跑步者进入数据库的速度会延长。尽管我每晚进行所有清理操作,但时间越长,花费的时间就越长(删除旧的日志消息,锁并在重新索引/碎片整理作业之前删除状态表)。

-由于某种原因,在事实调试之后,我向其中输出调试消息的日志文件,例如,我查找sql错误,连接错误,代理问题,RegEx错误,并通过控制台应用程序将其输出,我正在使用DLL时刻到C:\ programdata \ myproj \ logfile.txt中的日志文件-它具有写入文件的权限,但是一旦作业结束,如果我尝试在标准编辑器-Editplus中打开它,它将打开一个空白文件。如果先在记事本中打开它,则可以看到所有调试信息,然后可以复制n粘贴到空白的Editplus文档中。

以前从未在我的Work PC上执行过此操作,权限还可以,文件正在写入中,打开日志文件时我没有任何“权限被拒绝”或其他I / O错误,如果我没有在记事本中打开它。

因此,我想知道随着重新启动修复,随着时间的流逝,正在采取什么样的行动来减慢这项工作。我知道当我们工作中的PC出现错误或问题时,我们常从技术人员那儿得来的一句俗语:“您是否尝试过重新打开和关闭它” –出于某种原因确实解决了很多问题。

我只是想知道几天之内可能会发生什么类型的问题,使它变慢,所以我可能会自动执行清理作业,因此不会发生。我过去经常在每天远程连接到服务器的Work PC上运行完全相同的代码达数月之久,然后由于Windows Updates不得不重新启动。因此,在我一直不停地打开PC的工作中,它从来没有用我的坏习惯来做到这一点。

磁盘是否碎片化了-为什么在重新启动后不要求进行磁盘碎片整理来解决该问题。 注册表?重新启动修复后,随着时间推移可能会变得越来越糟。 还是我正在使用MS sql Express 2017并且它写入的文件存在一些I / O问题,随着时间的推移速度会变慢。

我希望能够在一天中的特定时间让笔记本电脑保持打开状态,而不必担心它会花费11个小时来完成第一次导入工作。

现在已经过去了37分钟,已经跑步了20分钟,它已经进口了15场比赛和跑步者,大约占总数的四分之一,所以应该在今晚大约一个小时的时间内完成比赛,而我只是重新开始了比赛笔记本电脑,没别的了,它已从昨天晚上的10个小时加快了速度?

有什么可能会减慢情人的时间,我能完全解决它吗?

解决方法

我最近阅读了一篇有关SQL Server和tempdb的文章。也许研究一下。同样,插入到索引过多或索引错误的数据库中可能会大大减慢速度。也许删除索引-运行插入等,然后重新创建它们。