Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
На SQLCE только одна таблица в которой 60000 рядов, каждый ряд имеет 20 полей
Все ряды тем или иным образом модифицируются.
Теперь задача - сохранить изменения с помощью Adapter.
Вот этот простой пример показывает, что скорость сохранения в локальную базу не более 10 рядов с секунду.
Да и то, - это очень сильно зависит от скорости диска и процессора.
То есть, база сохраняется пару часов :(

var cnt = 0;
            foreach (var d in DataSet.Table)
            {
                d.boolValue = false;
                d.intValue = d.intValue + 1;
                d.stringValue = d.stringValue + " ";
                cnt++;
                if (cnt / 2000 * 2000 == cnt)
                {
                    Debug.WriteLine("begin "+DateTime.Now);
                    LocalAdapter.Update(DataSet.Table);
                    Debug.WriteLine("end "+DateTime.Now);
                }
            }


Может, кто-то знает как решить проблему со скоростью записи?
Или есть какая-нибудь альтернатива? (Интересует только ЛОКАЛЬНАЯ альтернатива)
6 мар 13, 14:27    [14019700]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
А почему Вы используете цикл вместо запроса (запросов) на UPDATE?!
6 мар 13, 14:31    [14019730]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
pkarklin
А почему Вы используете цикл вместо запроса (запросов) на UPDATE?!


Это просто пример, для вычисления скорости, если кто-то хочет убедиться в моих словах - ничего более.
6 мар 13, 14:34    [14019751]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Это просто пример, для вычисления скорости, если кто-то хочет убедиться в моих словах - ничего более.


Вы им меряете скорость работы приложения на .NET. Не более.
6 мар 13, 14:35    [14019755]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
http://msdn.microsoft.com/ru-ru/library/z1z2bkx2%28v=vs.90%29.aspx
Вызывает соответствующие операторы INSERT, UPDATE или DELETE для каждой вставленной, обновленной или удаленной строки в объекте DataTable
то есть это цикл циклов что ли?
(я просто с адаптерами уже года два не работаю, не все помню...)
6 мар 13, 14:42    [14019808]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
pkarklin
Tangous
Это просто пример, для вычисления скорости, если кто-то хочет убедиться в моих словах - ничего более.


Вы им меряете скорость работы приложения на .NET. Не более.


Да на .Net, а при чем тут это? Ну померяйте не на .Net.
Я же не об этом спрашивал. Лучше - по существу вопроса.
6 мар 13, 14:45    [14019830]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Паганель
то есть это цикл циклов что ли?


Ну, да, вместо:

UPDATE
  SomeTable
SET
  boolValue = 0,
  intValue = intValue + 1
  stringValue = stringValue + '',


уйдет апдейт для каждой строки.
6 мар 13, 14:46    [14019834]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Абсолютно точно.
6 мар 13, 14:47    [14019850]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Да на .Net, а при чем тут это?


.Net тут не причем. Причем тут Ваш навигационный подход при работе с данными.
6 мар 13, 14:47    [14019851]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Это не цикл циклов!
Просто, чтобы желающие не ждали часами, тут написано:

Измени 2000 рядов в базе из 60000 рядов и запиши на диск!
После делай тоже самое со следующими 2000 и тд.
6 мар 13, 14:52    [14019907]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
И скорость ЗАПИСИ НА ДИСК от количества изменённых рядов НЕ ЗАВИСИТ, а зависит от количества существующих рядов в таблице.
А их 60000.
6 мар 13, 14:55    [14019924]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
ну я же привел цитату из доки, там же написано "для каждой"
6 мар 13, 14:55    [14019927]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Измени 2000 рядов в базе из 60000 рядов и запиши на диск!


Что выльется в 2 000 инструкций UPDATE.
6 мар 13, 14:55    [14019928]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
И скорость ЗАПИСИ НА ДИСК от количества изменённых рядов НЕ ЗАВИСИТ, а зависит от количества существующих рядов в таблице.
А их 60000.


и у таблицы есть первичный ключ?
6 мар 13, 14:57    [14019944]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
pkarklin
Tangous
И скорость ЗАПИСИ НА ДИСК от количества изменённых рядов НЕ ЗАВИСИТ, а зависит от количества существующих рядов в таблице.
А их 60000.


и у таблицы есть первичный ключ?


Да есть из 5 полей.
6 мар 13, 15:01    [14019981]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous,

Не знаю, сработает ли это для CE, но попробуйте завернуть UPDATE в транзакцию.
6 мар 13, 15:04    [14020003]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Я поясню, наверное в первом посте мало информации.
Еще раз подчеркну - табличка из 60000 рядов

//метка времени 1
            foreach (var d in DataSet.Table)
            {
                d.boolValue = false;
                d.intValue = d.intValue + 1;
                d.stringValue = d.stringValue + " ";
            }
//метка времени 2
                                   LocalAdapter.Update(DataSet.Table);
//метка времени 3


Между 1 и 2 меткой - 5 секунд.
Между 2 и 3 меткой - ДВА ЧАСА! Без всяких циклов.
6 мар 13, 15:08    [14020036]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tangous
Между 2 и 3 меткой - ДВА ЧАСА! Без всяких циклов.

Цикл делает LocalAdapter.
Как уже было процитировано
"Вызывает соответствующие операторы INSERT, UPDATE или DELETE для каждой вставленной, обновленной или удаленной строки в объекте DataTable"
6 мар 13, 15:50    [14020392]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Glory
Tangous
Между 2 и 3 меткой - ДВА ЧАСА! Без всяких циклов.

Цикл делает LocalAdapter.
Как уже было процитировано
"Вызывает соответствующие операторы INSERT, UPDATE или DELETE для каждой вставленной, обновленной или удаленной строки в объекте DataTable"


Зачем говорить очевидное?
Вопрос в другом.
Можно ли как то увеличить производительность?
Или использовать другое решение для сохранения локальных данных на диск?
Фантазирую... например, SQLite.
6 мар 13, 16:59    [14020940]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tangous
Можно ли как то увеличить производительность?

Для увеличения производительности сначала ищут узкое место.
Вы, например, как мониторили, что в вашей системе происходит ?
6 мар 13, 17:08    [14021015]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Или использовать другое решение для сохранения локальных данных на диск?
Фантазирую...


Почему бы не пофантазировать об Express редакции MS SQL?!
6 мар 13, 17:09    [14021034]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Glory
Tangous
Можно ли как то увеличить производительность?

Для увеличения производительности сначала ищут узкое место.
Вы, например, как мониторили, что в вашей системе происходит ?


что мониторить в коде из 2-х строчек? или-или. Выше все написано...
Узкое место - адаптер Microsoft.
Точнее обертка для адаптера,
поскольку адаптер я уже переписал сам, где оптимизировал инструкции...
6 мар 13, 17:52    [14021292]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
pkarklin
Tangous
Или использовать другое решение для сохранения локальных данных на диск?
Фантазирую...


Почему бы не пофантазировать об Express редакции MS SQL?!


Да я бы пофантазировал..., но только APP перемещается между нодами кластера.
А ставить еще и express на кластер - увольте, - лишний геморрой.
6 мар 13, 17:56    [14021317]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Tangous,
я извиняюсь но какой-то глупый разговор происходит

из вашего .net можно выполнить прямую инструкцию типа
update TableX set boolValue = false,
intValue = intValue + 1,
stringValue = stringValue + " "

т.е не пользуясь никакими внутренними абстракциями .net
попробуйте и увидите что все будет летать
60тыс записей это вообще копейки
сервера миллионами строк ворочают...
6 мар 13, 18:30    [14021472]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Да я бы пофантазировал..., но только APP перемещается между нодами кластера.


Аппликуха с CE на кластере? Жестко...

Tangous
А ставить еще и express на кластер - увольте, - лишний геморрой.


Увольняю. Его нельзя поставить в кластерной конфигурации.
6 мар 13, 19:31    [14021646]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Tangous
А ставить еще и express на кластер - увольте, - лишний геморрой.


Увольняю. Его нельзя поставить в кластерной конфигурации.[/quot]

Можно, в 2008 R2, на "плавающий" диск.
7 мар 13, 12:28    [14024049]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Вариант прямого обращения к базе не помог!


//метка времени 1
            foreach (var d in DataContext.Table)
            {
                d.boolValue = false;
                d.intValue = d.intValue + 1;
                d.stringValue = d.stringValue + " ";
            }
//метка времени 2
                                   DataContext.SubmitChanges()
//метка времени 3


Несмотря на "миллионные" возможности время между метками 2 и 3 уменьшилось с 2 часов до 40 минут. :(
Может я что-то не то делаю?
Надо как то по другому сохранять изменения?
12 мар 13, 14:02    [14040195]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
leov
Tangous,
я извиняюсь но какой-то глупый разговор происходит

из вашего .net можно выполнить прямую инструкцию типа
update TableX set boolValue = false,
intValue = intValue + 1,
stringValue = stringValue + " "

т.е не пользуясь никакими внутренними абстракциями .net
попробуйте и увидите что все будет летать
60тыс записей это вообще копейки
сервера миллионами строк ворочают...


Не все так просто.
Есть Таблица в памяти, являющаяся отражением локальной таблицы.
С этой таблицей и идет работа.
Добавляются ряды, изменяются, удаляются.
После окончания "процесса" надо все изменения сохранить уже в локальной базе.
Совокупно, изменения происходят во всех 60000 рядов.
Например, было 40000 тыс. Добавили еще 20000 рядов.
Из получившихся 60000 тыс 35000 модифицировали, 10000 удалили.
Теперь все это надо сохранить.
12 мар 13, 14:16    [14040295]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5983
leov
из вашего .net можно выполнить прямую инструкцию типа

Можно. Просто некоторые ленятся писать кодить CRUD руками, и используют всяческие адаптеры. Результат - этот топик, например.
12 мар 13, 14:41    [14040473]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Есть Таблица в памяти, являющаяся отражением локальной таблицы.
Совокупно, изменения происходят во всех 60000 рядов.
Теперь все это надо сохранить.


Зачем Вам здесь реляционная СУБД?! Пишите в файл!

Сообщение было отредактировано: 12 мар 13, 14:51
12 мар 13, 14:51    [14040540]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Сон Веры Павловны
leov
из вашего .net можно выполнить прямую инструкцию типа

Можно. Просто некоторые ленятся писать кодить CRUD руками, и используют всяческие адаптеры. Результат - этот топик, например.


Не верное утверждение.
Как я уже писал выше, адаптер переписан ручками.
Да и чем CRUD от него отличается? Только минимальным набором и лаконичностью.
12 мар 13, 15:12    [14040680]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
pkarklin
Tangous
Есть Таблица в памяти, являющаяся отражением локальной таблицы.
Совокупно, изменения происходят во всех 60000 рядов.
Теперь все это надо сохранить.


Зачем Вам здесь реляционная СУБД?! Пишите в файл!


В идеале да, но к сожалению нужны мульти-обращения к "файлу".
Look между обращениями - вообще ужас и тормоза.
12 мар 13, 15:15    [14040702]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Tangous
Look между обращениями - вообще ужас и тормоза.


Смотрите в сторону новомодных NoSQL решений.
12 мар 13, 15:20    [14040726]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Tangous
leov
Tangous,
я извиняюсь но какой-то глупый разговор происходит

из вашего .net можно выполнить прямую инструкцию типа
update TableX set boolValue = false,
intValue = intValue + 1,
stringValue = stringValue + " "

т.е не пользуясь никакими внутренними абстракциями .net
попробуйте и увидите что все будет летать
60тыс записей это вообще копейки
сервера миллионами строк ворочают...


Не все так просто.
Есть Таблица в памяти, являющаяся отражением локальной таблицы.
С этой таблицей и идет работа.
Добавляются ряды, изменяются, удаляются.
После окончания "процесса" надо все изменения сохранить уже в локальной базе.
Совокупно, изменения происходят во всех 60000 рядов.
Например, было 40000 тыс. Добавили еще 20000 рядов.
Из получившихся 60000 тыс 35000 модифицировали, 10000 удалили.
Теперь все это надо сохранить.

извините может я чего-то не понимаю
может SQLCE это не sql server вообще
все о чем вы говорите делается на sql в четыре выражения

пока я вижу что разговор тут идет вообще не об sql
а об особенностях работы какого-то "адаптера" который переписан...
т.е вообще ни о чем разговор, по крайней мере вообще тема не этого форума
12 мар 13, 15:30    [14040827]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
[quot leov]
Tangous
пропущено...

пока я вижу что разговор тут идет вообще не об sql
а об особенностях работы какого-то "адаптера" который переписан...
т.е вообще ни о чем разговор, по крайней мере вообще тема не этого форума


Странно, а как по Вашему внешняя программа общается с SQL?
Посредством Management Studio?....
Короче, при использовании обычного MSSQL - все обрабатывается и сохраняется за секунды.
При использовании "тех же адаптеров" для SQLCE - часы.
Задача выше поставлена.

Может кто-то просто предложит пример кода, как он бы это сделал.
Считать данные с локальной базы sqlce, модифицировать их и записать обратно.
Много записей и быстро.
12 мар 13, 15:44    [14040951]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Tangous,
у вас есть возможность выполнить из вашего кода на .net обычное sql выражение?
например то же
update TableX set boolValue = false,
intValue = intValue + 1,
stringValue = stringValue + " "

сколько времени оно будет выполняться?
12 мар 13, 15:52    [14041029]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
leov
Tangous,
у вас есть возможность выполнить из вашего кода на .net обычное sql выражение?
например то же
update TableX set boolValue = false,
intValue = intValue + 1,
stringValue = stringValue + " "

сколько времени оно будет выполняться?



Выполняю следующим образом (слово АДАПТЕР уже боюсь произносить...)
DATACONTEXT.ExecuteCommand("update TableX set boolValue = false, intValue = intValue + 1, stringValue = stringValue + ' '");

Конкретно этот запрос Выполняется 270 мс.
Только я не могу сделать групповой запрос.
Каждый ряд в таблице имеет свой собственный набор изменений на UPDATE.
А есть еще INSERT and DELEDE.
12 мар 13, 16:28    [14041333]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Tangous,
этот конкретный запрос без where 270мс
сколько записей он апдейтит?
предполагаю что много потому как вы тут о тысячах говорите
сдtлайте по такой-же схеме ваш апдейт для одного "ряда"
сколько он будет выполняться?
предполагаю что быстрее

меня не пугает слово "адаптер" само по себе
просто когда вы показываете тут код написанный не на sql
и применяете странную терминологию "ряды" вместо "строки таблицы"
и говорите о каких-то "адаптерах" которые тоже рядом с sql не лежали
то чувствуется что вы вроде как не туда попали
тут про sql разговаривают и точнее про mssql
12 мар 13, 16:58    [14041538]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
а не хотите данные на сервер передавать через table-valued parameter и там уже записывать данные таблицы на сервере приложений в серверную таблицу?
12 мар 13, 16:59    [14041546]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 345
А если, как вариант, обновленную таблицу из датасета BULK'ом грузить в соседнюю, а потом делать подмену? Все в транзакции, соответственно.

Тут, конечно, необходимо будет аккуратно обработать все констрейнты, привилегии, триггеры и т.п. Но, поскольку таблица Ваша, то и неожиданных изменений в ней быть не должно.
12 мар 13, 17:05    [14041576]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
jnub
Member

Откуда:
Сообщений: 32
Tangous
leov
Tangous,
я извиняюсь но какой-то глупый разговор происходит

из вашего .net можно выполнить прямую инструкцию типа
update TableX set boolValue = false,
intValue = intValue + 1,
stringValue = stringValue + " "

т.е не пользуясь никакими внутренними абстракциями .net
попробуйте и увидите что все будет летать
60тыс записей это вообще копейки
сервера миллионами строк ворочают...


Не все так просто.
Есть Таблица в памяти, являющаяся отражением локальной таблицы.
С этой таблицей и идет работа.
Добавляются ряды, изменяются, удаляются.
После окончания "процесса" надо все изменения сохранить уже в локальной базе.
Совокупно, изменения происходят во всех 60000 рядов.
Например, было 40000 тыс. Добавили еще 20000 рядов.
Из получившихся 60000 тыс 35000 модифицировали, 10000 удалили.
Теперь все это надо сохранить.

А зачем нужен sql сервер в принципе, если всё равно "Есть Таблица в памяти, являющаяся отражением локальной таблицы"?
Прочитали из файла - сохранили в файл. Сервер то для чего?
12 мар 13, 17:06    [14041584]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
jnub
Member

Откуда:
Сообщений: 32
Tangous
pkarklin
пропущено...


Зачем Вам здесь реляционная СУБД?! Пишите в файл!


В идеале да, но к сожалению нужны мульти-обращения к "файлу".
Look между обращениями - вообще ужас и тормоза.

Какая конкуренция, если все равно все в памяти лежит?
12 мар 13, 17:07    [14041595]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Matroskin
Member

Откуда: Жатай->Подольск
Сообщений: 137
Tangous,

1. собрать весь набор в виде XML-а,
2. передать на сервер в виде параметра
3. вставить все это в табличную переменную
4. использовать команду MERGE соединив строки обновляемой таблицы и табличной перемнной из п.3 по PK
12 мар 13, 17:22    [14041677]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
А зачем нужен sql сервер в принципе, если всё равно "Есть Таблица в памяти, являющаяся отражением локальной таблицы"?
Прочитали из файла - сохранили в файл. Сервер то для чего?


К локальной базе одновременно происходит несколько обращений - с файлом это не проходит.
12 мар 13, 17:45    [14041788]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
jnub
Member

Откуда:
Сообщений: 32
Tangous
А зачем нужен sql сервер в принципе, если всё равно "Есть Таблица в памяти, являющаяся отражением локальной таблицы"?
Прочитали из файла - сохранили в файл. Сервер то для чего?


К локальной базе одновременно происходит несколько обращений - с файлом это не проходит.

одновременно - откуда?
12 мар 13, 17:51    [14041827]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
jnub
Member

Откуда:
Сообщений: 32
jnub
Tangous
пропущено...


К локальной базе одновременно происходит несколько обращений - с файлом это не проходит.

одновременно - откуда?

обращений - каких?
что означает "не проходит"?
12 мар 13, 17:52    [14041832]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
leov
Tangous,
этот конкретный запрос без where 270мс
сколько записей он апдейтит?
предполагаю что много потому как вы тут о тысячах говорите
сдtлайте по такой-же схеме ваш апдейт для одного "ряда"
сколько он будет выполняться?
предполагаю что быстрее


60000 записей.
Конечно быстрее, для одной "строки" :)
говоит - 0, точнее мерять лень. Да и особого смысла не вижу.

меня не пугает слово "адаптер" само по себе
просто когда вы показываете тут код написанный не на sql
и применяете странную терминологию "ряды" вместо "строки таблицы"
и говорите о каких-то "адаптерах" которые тоже рядом с sql не лежали
то чувствуется что вы вроде как не туда попали
тут про sql разговаривают и точнее про mssql


Меня интересуют принципы работы с SQLCE (я ранее с ним не общался)
он тоже MS. Он что, просто тормознутый, или с ним надо уметь работать?
У меня пока не получается.
Да, прямые запросы работают быстро, но что толку-то?
У меня же набор изменений, а не стандартный update x set pole1...
А это динамически делает, к сожалению, АДАПТЕР datacontext-a из LINQ to SQL. (dbml)
12 мар 13, 18:00    [14041869]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Tangous
пропущено...



Какая конкуренция, если все равно все в памяти лежит?


Все на кластере, прыгает по нодам.
А если питание отключили? Все должно сохраниться до последнего изменения.
12 мар 13, 18:08    [14041891]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Tangous
leov
Tangous,
этот конкретный запрос без where 270мс
сколько записей он апдейтит?
предполагаю что много потому как вы тут о тысячах говорите
сдtлайте по такой-же схеме ваш апдейт для одного "ряда"
сколько он будет выполняться?
предполагаю что быстрее


60000 записей.
Конечно быстрее, для одной "строки" :)
говоит - 0, точнее мерять лень. Да и особого смысла не вижу.

дак в самом начале вы писали что если с тем кодом который .net
у вас получалось сделать update 10 записей в секунду
а тут 1 запись update за 0
то закручивайте в цикл явный update с where для одной записи
и будет у вас быстро работать даже на той конфигурации
вникать в идеологию и качество которой я даже не хочу

Tangous
меня не пугает слово "адаптер" само по себе
просто когда вы показываете тут код написанный не на sql
и применяете странную терминологию "ряды" вместо "строки таблицы"
и говорите о каких-то "адаптерах" которые тоже рядом с sql не лежали
то чувствуется что вы вроде как не туда попали
тут про sql разговаривают и точнее про mssql


Меня интересуют принципы работы с SQLCE (я ранее с ним не общался)
он тоже MS. Он что, просто тормознутый, или с ним надо уметь работать?
У меня пока не получается.
Да, прямые запросы работают быстро, но что толку-то?
У меня же набор изменений, а не стандартный update x set pole1...
А это динамически делает, к сожалению, АДАПТЕР datacontext-a из LINQ to SQL. (dbml)
я в первый раз слышу про sqlce но раз он sql называется то надо с ним на sql и разговаривать
и принцип тут ровно один
напишете
            foreach (var d in DataSet.Table)
            {
                d.boolValue = false;.......
и получите тормоза
а напишете
update...where...
и получите duration 0 или около того

с sql сервером надо на sql разговаривать
12 мар 13, 18:29    [14041964]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Tangous
Да, прямые запросы работают быстро, но что толку-то?
У меня же набор изменений, а не стандартный update x set pole1...
А это динамически делает, к сожалению, АДАПТЕР datacontext-a из LINQ to SQL. (dbml)
вы что не можете строку команды на update динамически собрать?
и вообще-то всякие PreparedStatement существуют с параметрами
я с java работаю и не могу вам тут по .net консультации дать

не произносите вы это слово адаптер, тем более заглавными буквами
нет в нем никакого смысла
12 мар 13, 18:35    [14041978]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Matroskin
Tangous,

1. собрать весь набор в виде XML-а,
2. передать на сервер в виде параметра
3. вставить все это в табличную переменную
4. использовать команду MERGE соединив строки обновляемой таблицы и табличной перемнной из п.3 по PK


Попробую - отпишусь, но что-то сильно сомневаюсь, что это убыстрит процесс.
Да и может ли это SQL Compact Edition?
12 мар 13, 21:20    [14042457]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
leov
вы что не можете строку команды на update динамически собрать?


Собрал: результат - 10 записей в секунду.
Я бы мог грешить на быстродействие кода, машины и др., но при равных условиях если использовать обычный MSSQL
все летает...
12 мар 13, 22:47    [14042691]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Проблему решил.
Все дело не в Адаптере, а в ДатаПровайдере.
Заменил локальную базу SQLCE на Локальную Базу MSSQL в виде притачанного файла (.mdf)
Не изменил ни строчки кода. Оставил автосгенеренные Адаптеры.
(Да простит меня leov)
Все "летает".
Вывод: А ну его - этот SQLCE...

Думаю, тема закрыта.
13 мар 13, 01:06    [14042992]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Не могу не поделиться последними новостями.
Local DB SQL не устанавливается на MS Server 2003 (только на 2008)
Пришлось вернуться к SQLCE.
Проблема все же решилась.
В моей табличке было семь полей PRIMARY KEY.
Я сделал из них UNIQUE.
И добавил в качестве PRIMARY KEY - IDENTITY (1,1) INT
Все сразу "залетало".
Делайте выводы.
21 мар 13, 13:06    [14076875]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tangous
В моей табличке было семь полей PRIMARY KEY.
Я сделал из них UNIQUE.
И добавил в качестве PRIMARY KEY - IDENTITY (1,1) INT
Все сразу "залетало".
Делайте выводы.

И какие же ?
Если "Делайте PK как можно короче", то это и так рекомендуется делать на всех базах
21 мар 13, 13:09    [14076900]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Glory
Tangous
В моей табличке было семь полей PRIMARY KEY.
Я сделал из них UNIQUE.
И добавил в качестве PRIMARY KEY - IDENTITY (1,1) INT
Все сразу "залетало".
Делайте выводы.

И какие же ?
Если "Делайте PK как можно короче", то это и так рекомендуется делать на всех базах


Вообще то тема про производительность SQLCE.
Local DB работает быстро и с кучей полей, а MS SQLCE как оказалось - нет.
21 мар 13, 13:15    [14076929]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tangous
Вообще то тема про производительность SQLCE.
Local DB работает быстро и с кучей полей, а MS SQLCE как оказалось - нет.

Мда уж. А если Enterprise или какой нибудь Datacenter поставить на кучу памяти и ядер, то вообще летать будет.
21 мар 13, 13:18    [14076957]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Tangous
Member

Откуда:
Сообщений: 34
Glory
Мда уж. А если Enterprise или какой нибудь Datacenter поставить на кучу памяти и ядер, то вообще летать будет.


Я, что, должен это комментировать?
В форуме "мусора" и так хватает.
21 мар 13, 13:25    [14077008]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
Glory
Member

Откуда:
Сообщений: 104760
Tangous
Я, что, должен это комментировать?
В форуме "мусора" и так хватает.

Включая этот топик
Комментировать не надо.
Поток мыслей можно записывать куда-нибудь в свой блог.
21 мар 13, 13:27    [14077021]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь. Производительность SQLCE  [new]
kalimba
Member

Откуда:
Сообщений: 297
Как вариант переделать хранение на дата + BULK INSERT. BULK INSERT для SQLCE - http://sqlcebulkcopy.codeplex.com/
22 мар 13, 09:56    [14080308]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / Microsoft SQL Server Ответить