/ / Същите данни за различен ключ в таблицата отнемат много време - sql-server, rowlocking

Същите данни за различните ключове в таблицата отнемат много време - SQL Server, locklocking

Имам маса ...

FactorID, col1 col2     Factor Value
1         a     2        1231
1         b     3        2342
2         a     2        1233
2         b     3        2344

Това означава ... За фактор Id 1 имам 1500 записа ... и фактор Id 2 имам същия брой записи.

За фактор ИД 1 и 2 всяка стойност е същата, с изключение на "Стойност на фактора".

Когато се присъединя към таблицата с някои други таблици за извличане на данни ... FactorID 1 ми дава бързи резултати ... но когато поискам "2" ... изпълнението никога не свършва.

Това ми се струва странно. Дали това е нещо, свързано със заключване на редове? Моля, помогни ми.

Отговори:

1 за отговор № 1

Може да е, че присъединяването използва сканиране на таблица. Проверете дали FactorID има индекс. Резултатите, които виждате, могат да бъдат, защото записите на FactorID 1 са първите в таблицата и когато става въпрос за FactorID 2, той продължава да прескача записи за FactorID1 един по един, докато стане въпрос за FactorID 2.


0 за отговор № 2

Когато се присъединя към таблицата с някои други таблици за извличане на данни ... FactorID 1 ми дава бързи резултати ... но когато попитам за "2" ... изпълнението никога не свършва.


Уау, това казва много малко.

Отговорът зависи от три неща.

  1. Как се определят таблиците ви?
    • Имате ли първични ключове? Кои колони са ключовете? Ако в таблицата, показана по-горе, има само две стойности "FactorID", това би било лош избор за първичен ключ.
    • Индексирани ли са други колони?
    • Имате ли действително колони с име "col1" и "col2"? Или просто казвате: "имената не са от значение"?
    Има значение как са дефинирани и OTHER таблиците. Имате ли някакви ключове?
  2. Какъв тип данни са в таблиците? Колко реда?
  3. Най-важното нещо: Какво искаш да кажеш с "когато се присъединя към таблицата с някои други маси"? Колко таблици се присъединяват? Как се справяш?

Плюс това, вие казвате, че вашата заявка "никога не свършва" - колко време чакате?

Съжаляваме, но се нуждаем от много повече информация, преди да бъде даден смислен отговор.