Медленное обновление совместно используемой папки на окнах 7

Помещение ограничений на таблицы не является "решением" (в переносном смысле). Скорее это - правильный поступок. По определению схема базы данных должна быть разработана, чтобы заставить RDBMS осуществлять ограничения, которые препятствуют тому, чтобы недопустимые данные были представлены в базе данных.

У Вас должны быть ограничения на Ваши таблицы, чтобы препятствовать тому, "чтобы дублирующиеся данные" были вставлены как часть базовой конструкции базы данных. При использовании естественных первичных ключей, Вы получили бы это "бесплатно". Так как Вы используете искусственные первичные ключи (столбцы "идентификационных данных"), Вам нужны ограничения уникальности на столбцы, которые составляют естественный первичный ключ.

Почти гарантировано, что это происходит где-нибудь в Вашем коде. SQL Server был разбит - на довольно в большой степени очень, очень крупные пользователи за эти годы. В ошибке в самом механизме SQL Server этого типа разобрались бы давным-давно.

После того как у Вас есть ограничения уникальности на месте, ошибки будут брошены, когда эти дублирующиеся записи будут вставлены, и Вы сможете проследить их до их источника. Если Ваш код не имеет эквивалента "На Ошибочном Резюме Затем", тип конструкции в нем необходимо начать получать ошибки (необработанные исключения, и т.д.), когда незаконному коду не удается выполнить вставки на "дублирующихся" данных.

Целое "округлило время" признак, который Вы описываете, заставляет меня думать, что Вам проложили "служебную" функцию под землей где-нибудь в коде, который "помогает" путем усечения времени (так как усечение значений даты и времени довольно тривиально).

Совершите ограничительные ошибки нарушения броска SQL Server, и Вы сможете разыскать незаконный код. Оставьте ограничения на базу данных даже после фиксации незаконного кода, потому что, исключая недопустимые данные часть задания базы данных.

9
задан 25 February 2013 в 11:00
3 ответа

У меня была точно такая же проблема, но с экспортами Samba 4 и клиентами Windows 7. Это определенно ошибка клиентской стороны. После тщательной диагностики я просто добавил ключ реестра, и он сработал как шарм после однократного нажатия кнопки F5.

Только нужно было добавить этот ключ реестра:

DirectoryCacheLifetime[DWORD] = 0

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters

Значения, упомянутые в этой статье, кажутся недействительными, так как этих значений реестра больше не существует. Я считаю, что по умолчанию время истечения срока действия кэша составляет 10 минут, а не 10 секунд. http://technet.microsoft.com/en-us/library/ff686200%28v=ws.10%29.aspx

UPDATE(20/04/2015)

Если вы заинтересованы в применении этого на стороне сервера без необходимости настройки клиентов, то в разделе [global] внутри smb.conf необходимо добавить следующую строку:

server max protocol = SMB2_02

Это ограничит сервер протоколом SMB2, а не SMB3 по умолчанию, который поставляется с Samba 4, но это скомпрометирует скорость передачи данных. Я считаю, что протокол SMB2_02 является ранней версией SMB2, которая не поддерживает кэширование, поэтому он должен работать в этом случае.

Однако я заметил, что некоторые клиенты все еще испытывают проблемы с кэшированием и вынуждены вручную менять реестр, как описано выше.

К сожалению, документации о различных версиях протокола SMB не так много. Вот что говорит об этом man-страница для smb.conf:

Ссылка: https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5 .html#SERVERMAXPROTOCOL

15
ответ дан 2 December 2019 в 22:24

У меня такая же проблема, и я отправлю то, что прочитал. Я еще не пробовал.


Вам нужно добавить несколько ключей реестра, чтобы SMB2.0 быстрее обновлял экран. Вот ключи:

как всегда, редактируйте реестр на свой страх и риск

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Lanmanworkstation \ Parameters

1. Кэш каталога, установив для параметра «DirectoryCacheLifetime» значение НУЛЬ.

] 2. Кэш файла не найден, установив для параметра FileNotFoundCacheLifetime значение НУЛЬ.

3. Кэш информации о файле, установив для параметра FileInfoCacheLifetime значение НУЛЬ.

После добавления этих записей перезагрузите компьютер и повторите попытку. Я сделал это на любой клиентской машине, у которой были проблемы с просмотром общего сетевого ресурса. Я не делал этого с самим файловым сервером.

2
ответ дан 2 December 2019 в 22:24

Я создал новый Dword: HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ Lanmanworkstation \ Parameters \ DirectoryCacheLifetime и установлено значение 0

У меня это сработало после перезагрузки.

1
ответ дан 2 December 2019 в 22:24

Теги

Похожие вопросы