Я только что написал похожую программу с помощью ребят из Stack Overflow:
from string import punctuation
from operator import itemgetter
N = 100
words = {}
words_gen = (word.strip(punctuation).lower() for line in open("poi_run.txt")
for word in line.split())
for word in words_gen:
words[word] = words.get(word, 0) + 1
top_words = sorted(words.items(), key=itemgetter(1), reverse=True)[:N]
for word, frequency in top_words:
print ("%s %d" % (word, frequency))
Мы широко используем репликацию в нашей компании, так как у нас есть 38 складов в нескольких странах, все реплицирующиеся обратно на наш основной сервер в Лондоне.
Во-первых, ваши фильтры репликации должны использовать представления, даже самые простые ед. Таким образом, если вам нужно настроить фильтр (прочтите предложение WHERE), вам просто нужно изменить представление и все готово. В противном случае вам придется повторно публиковать свои данные и повторно подписывать всех, что может быть настоящей проблемой.
Вы упомянули, что вы запускаете одно и то же удаление и для подписчика, и для издателя, чтобы они синхронизировались. Это вызывает дрожь по моему позвоночнику. Намного лучше удалить их в одном месте и позволить серверу реплицировать сделанные изменения подписчикам. Начиная с SQL Server 2005 репликация стала очень быстрой и эффективной. SQL 2000 был и остается довольно медленным для репликации. Если вы используете SQL 2005/2008, просто убедитесь, что ваш уровень совместимости (щелкните правой кнопкой мыши на db, properties, options) установлен на 90 (2005) или 100 (2008). Это переключает сервер sql на быстрые и эффективные методы репликации.
Другой способ - не удалять данные, а сохранить их и отфильтровать с помощью предложения where в публикации.
Прошло много времени с тех пор, как я активно администрировал репликацию, но я подозреваю, что ответ связан с архитектурой программы чтения журналов и тем, что вы делитесь статьей между публикациями. Я понимаю, что средство чтения журнала будет просматривать журнал и искать операции с элементами, которые реплицируются. В зависимости от настроек статьи отдельные изменения данных могут быть опубликованы в таблице в базе данных распространителя или будет опубликована запись о вызове процедуры. В любом случае, это свойство статьи, а не публикаций, частью которых является статья.