Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 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

Откуда:
Сообщений: 5994
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]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить