Представим такую ситуацию:
Пользователь дважды нажал на кнопку купить, ну или клиент отправил 2 запроса, тогда есть вероятность, что когда мы получаем количества товара в магазине, баланс на счету уменьшится. Однако, у нас будет diff>0.
Могло бы спасти @@error, но:
@@error - возвращает номер ошибки для последней выполненной инструкции Transact-SQL.
SELECT TOP 50 id, fid, uid, type, val, message FROM sw.dbo.logs WHERE uid=@id ORDER BY id DESC;
Почему именно топ 50 последних по id? Это запись по ключу. Они возьмутся гораздо быстрее. Проблема собственно в размере таблицы. Более 3 млн записей. От этого и тормоза в запросе.
SELECT * FROM ((SELECT TOP 50 id, fid, uid, type, val, message FROM sw.dbo.logs WHERE uid=@id ORDER BY id DESC;
SELECT TOP 50 id, fid, uid, type, val, message FROM sw.dbo.logs WHERE (fid=@id and type=100) ORDER BY id DESC) ORDER BY DESC;
Такое естественно не работает
Индексы: id ASC- первичный ключ
fid (ASC), type (DESC)
uid (ASC), status (ASC) - кластеризованный
Запросов очень много идет сюда. Но только с этим проблема.
Открыли новую вкладку. При ее открытии записывайте в local.storage, что вы ее открыли.
Потом на ней работайте с сервером. А когда поработали записываете это в local.storage и window.close();
На первой вкладке отслеживаете переменную local.storage. Если она поменялась выполняете дальнейшие шаги.
Получаю на выходе объекты, вот возникает как их хранить для дальнейшего вывода.
В общей сложности делаются 5 запросов, а потом все собранные данные отправляются в строку и выводятся.
ark.intel.com/ru/products/77988/Intel-Atom-Process...
ark.intel.com/ru/products/75056/Intel-Xeon-Process...
Но, что 2-й лучше, чем атом я знаю. Поэтому и спросил про атом))