SQL Server 2008 Express одной записи - PullRequest
0 голосов
/ 04 июня 2010

У меня самая причудливая проблема (по крайней мере, для меня странная) с SQL Server Express 2008.

Проблема заключается в следующем:

На компьютере разработчика я использую SQL Server 2008 Enterprise .... Я получаю некоторые данные из службы WCF и записываю эти данные в базу данных (насколько это возможно) .... Я должен отметить, однако, что Пишу, это делается в отдельной ветке. Но, в любом случае, никаких проблем при разработке ... все данные есть.

Затем я настраиваю все (строки подключения. \ SQLEXPRESS, другие параметры), собираю Release и копирую его на тестовый компьютер, на котором установлен SQL Server Express (потому что мое приложение является клиентским приложением и должно работать с Express). .. я запускаю программу .... программа извлекает данные из службы ... и когда я смотрю на базу данных ... меня ждет большой сюрприз ... написана только одна строка (первая строка, полученная от службы WCF).

Я был бы очень признателен за любую помощь ... Я зашел в тупик.

Ответы [ 4 ]

2 голосов
/ 04 июня 2010

Можете ли вы профилировать то, что на самом деле вызывается на сервере sql?

Откройте профилировщик сервера SQL, укажите экземпляр SQL Express и убедитесь, что вы извлекаете RPC: Завершено и Sql Утверждено выполнено. Вы можете снять остальные значения по умолчанию, это может сказать вам, как это может вызывать его по-другому на сервере.

Другие мысли: Правильный ли тип команды?

Есть ли где-нибудь верхушка?

1 голос
/ 04 июня 2010

У вас случайно не установлено (я знаю, это маловероятно)

set ROWCOUNT 1 
1 голос
/ 04 июня 2010

Перепроверьте все (особенно строки подключения). Пусть ваше приложение выведет файл журнала, который может помочь отладить вашу проблему.

Проверьте основную БД также, чтобы убедиться, что записи случайно не записаны в базу данных разработки.

0 голосов
/ 04 июня 2010

ОК, кто-то найдет это интересным ...

После тщательного анализа это произошло:

Я переместил код, который записывал данные в базу данных, которая выполнялась в другом потоке, в тот же поток, что и графический интерфейс .... и никаких проблем он работает нормально ... он записывает все данные в базу данных .

Я посмотрел дальше и наткнулся на статью в Интернете, в которой говорилось, что в SQL Express есть только один планировщик (и, конечно, один процессор и т. Д.) ... и поэтому он не поддерживает запись нескольких потоков в базу данных на один раз (кто-нибудь еще знает об этом больше?) ... поэтому решение для этого, вероятно, заключается в создании очереди и просто отправке материала по мере его поступления и записи данных по одному в базу данных.

...