У меня проблема с очень медленным выполнением executescalar в таблице с более чем 200 000 записей.
Метод, который я использую, проверяет, существует ли varchar в таблице, и возвращает счетчик, чтобы увидеть, можно ли что-нибудь найти:
public static bool AlreadyQueued(string url)
{
using (SqlConnection connection = new SqlConnection(_connectionString))
{
SqlCommand cmd = new SqlCommand("SELECT Count(queueID) from PriorityQueue where absolute_url = @url")
{
Connection = connection,
CommandType = CommandType.Text
};
cmd.Parameters.AddWithValue("@url", url);
connection.Open();
var count = (int)cmd.ExecuteScalar();
return count > 0;
}
}
Моя таблица построена так:
CREATE TABLE PriorityQueue
(
queueID int IDENTITY(1,1) PRIMARY KEY,
absolute_url varchar (900),
depth int,
priorty int
);
Есть ли способ ускорить мой метод С# или мне нужно что-то изменить в моей таблице?
absolute_url
, чтобы сделать его немного быстрее, но для большой таблицы это займет время, как и предполагалось. - person Mahesh   schedule 22.11.2016