Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

t-SQL съставен оператор причинява задънена улица, има ли идея защо?

Или трябва да държите повече ключалки, или по-малко.

Най-лесният отговор е да изберете NOLOCK (най-добра производителност) или TABLOCKX (последователност без да се налага да мислите).

Ако не можете да използвате with (nolock) поради изискванията за последователност, можете да добавите with (tablockx) .Това на практика ще означава, че само една нишка може да изпълнява подобни изрази в даден момент - няма да има едновременност.

Алтернативата е да анализирате изискванията си много по-подробно, което не може да стане, без да разберете защо актуализирате таблицата, за какво са данните и т.н.

Например, това изявление наистина ли трябва да присъства в транзакцията? Мирише на домакинство:

  DELETE FROM [dbo].[t_Log_2] 
  WHERE [idtm]<'2011-03-12 08:41:57';

Ако извадите това от транзакцията и го поставите в отделен пакет, може да откриете, че проблемите изчезват.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конфликт на съпоставяне между SQL_Latin1_General_CP1_CI_AS и Modern_Spanish_CI_AS в операцията равно на

  2. Sql Server 2008 - FullText закръгляващи парични стойности?

  3. по-добър начин за генериране на таблица месеци/години

  4. Изберете елементи като записи от колона в друга таблица

  5. Как да премахна неразбиващи интервали от колона в SQL сървър?