Фактът, че имате две бази данни на един и същи сървър и с един и същ набор от данни (както казахте), не гарантира същия план за изпълнение.
Ето някои от причините, поради които планът на заявката може да е различен:
- mdf и ldf файловете (за всяка база данни) са на различни дискове. Ако onedrives е по-бърз, тази база данни също ще изпълнява заявката по-бързо.
- спряна статистика. Ако имате една база данни с по-нова статистика от другата, SQL има по-добри шансове да избере правилен (и
по-бърз) план за изпълнение. - Индекси:Знам, че казахте, че и двата са идентични, но бих проверил дали имате един и същи тип индекси и на двата.
Съсредоточете се върху това да видите защо заявката се изпълнява бавно или да видите действителния план за изпълнение, вместо да сравнявате. Проверката на действителния план за изпълнение на бавната заявка ще ви даде намек защо работи по-бавно.
Освен това не бих добавил оператор NO LOCK, за да коригирам проблема. Според моя опит повечето бавни заявки могат да бъдат настроени чрез код или индекс, вместо добавяне на подсказка NO LOCK, която може да ви доведе до модифицирани или стари набори от резултати, в зависимост от вашите транзакции.