【发布时间】:2023-04-01 15:18:01
【问题描述】:
作为前言,我是使用 SQL Server 2005 的新手;我知道如何使用 SELECT、UPDATE、DELETE 和 INSERT 命令,仅此而已。我还在本地 PC 上使用 Express Edition(E8400 处理器、8GB DDR2-800、RAID 1 中的 2 个 640GB SATA-II 硬盘)
我有一个表,我设置了 8 列,都是 NVARCHAR(Max),我允许 Null。我在概念上知道主键是什么,但我没有主键(我也不知道如何设置主键)。
我正在开发的 VB.NET 程序正在从雅虎下载历史股票价格图表,用于现有的每个股票代码。我添加的前 50,000 行左右速度非常快。然后我去睡觉了,当我醒来时它还在运行——但是增加行的速度已经减慢了 waaaaaay;我注意到这在第 300,000 行左右。我一直希望行添加的速率随着时间的推移保持不变,但显然不是这样!
通过浏览其他 Stack Overflow 问题,我怀疑我的速度变慢与我糟糕的桌子设置有关。如果是这种情况,我应该首先从哪里开始解决这个问题,有没有什么好的资源可以阅读以开始?我希望这是我可以解决的简单问题:)
如果重要的话,这就是我添加行的方式:
cmdtext = "IF NOT EXISTS(SELECT DateStamp FROM DailyPrice WHERE (DateStamp = '" + datestamp + "' AND Ticker = '" + ticker + "')) INSERT INTO DailyPrice (Ticker,OpenPrice,ClosePrice,HighPrice,LowPrice,AdjustedClose,Volume,DateStamp) VALUES('" + ticker + "','" + openprice + "','" + closeprice + "','" + highprice + "','" + lowprice + "','" + adjustedclose + "','" + volume + "','" + datestamp + "')"
cmd = New SqlCommand(cmdtext, conn)
howmanygotinserted = cmd.ExecuteNonQuery
我对 CSV 文件的每一行都进行了迭代,每个 CSV 文件大约有 30,000 行(我有超过 5000 行)。
【问题讨论】:
标签: sql-server vb.net sql-server-2005 performance