Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
не - ну тут, конечно, никто и спорит. если софтина написана под аксес, а база огроменная (ну, скажем, по надцать миллионов записей в таблицах), то тут и ежу понятно, что аксес загнётся. так это ж тогда разработчик лажанулся. для каждой задачи надо выбирать соответствующую платформу. можно и запорожец 15 человек запихнуть - только вот будет ли он ехать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 14:11 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
Да база тянет своё существование из далеких далек + все архивы остаются в ней же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 14:20 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2 Dedushka Mazai Кстати что ты про Application.ProcessMessages; грил работает одинаково что с ним что без него и контролы так же не прорисовываются когда проведеш по энтому окну другим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 14:34 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
TThread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 14:37 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
при чём тут другие окна? предположим у тебя есть такой код: if MessageDlg('Вставить мильён записей?', mtWarning, [mbYes, mbNo], 0)=mrYes then begin //офигенный инсерт end; так вот - у тебя твоя форма в том месте, где было модальное окно не перерисуется. для этого и нужен вызов Application.ProcessMessages. а чтобы перерисовывалось так, как ты написал, надо по таймеру делать Invalidate. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 14:46 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2 JibSkeart и там тоже самое не до корня( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 14:54 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2Dedushka Mazai привести пример запроса на 40 минут? обычная выборка :-) А на 4.5 часа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 15:32 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
To KirillovA авторTThread Как прервать процесс открытия Query? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 15:52 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
kill №процесса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 15:54 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2locky: приведи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 15:58 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
Так ты про SQL запрос говорил 'Kill №' я блин ищю в дельфях что только не перепробовал а узнать № процесса своей Query? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:06 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
SELECT @@SPID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:08 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2Dedushka Mazai Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:11 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2locky: скажу ещё раз, если ты невнимательно читал этот топик: если запрос долго отрабатывается, значит либо виноват разработчик, у которого кривые руки (а может и голова), либо железо слабое и, как следствие, тормозит SQL-сервер. запрос твой всё равно ничего не скажет, так как без информации о структуре БД, о платформе, SQL-сервере и железе объективно запрос не оценить. Может его можно написать в 10 раз проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:26 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
автор2 Dedushka Mazai Но мы же не ищем кто виноват автор2 KirillovA а SELECT @@SPID даёт свой Id пытаюсь вставить в основной запрос но толку то не будет когда' я его получу обратно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:47 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
а куда проще то? Связка двух таблиц и суммы с группировками :-) к сожалению, не все запросы можно оптимизировать :-( (даже при наличии прямых рук) Железо... ну, слабовато немного (дисковая подсистема не самая быстрая, а при этом запросе (и аналогичных запросах) это очень важно, т.к. перелопачивается большой объем данных) (развести тут флейм, что ли?) Иногда, если запрос долго выполняется, это свидетельствует только о том, что он и должен долго выполняться. Потому что руки править - может и можно, да уж вроде некуда, а денег на то, чтобы прикупить себе парочку дополнительных камней, еще 5-6 гиг памяти, с 10-ток дисков и MS SQL Server EE - нету. p.s. DocDebet 1.7*10^8 rows, acfi - 4.9*10^5 rows Под ограничения подпадают, конечно, меньше (порядка 4.5*10^6 из DocDebet и все из acfi). Такой вот запрос выполняется, в зависмости от ситуации от 5 до 8 минут. Но есть и куда более тяжелые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:48 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2Snatch А кто мешает в потоке создать TADOConnection, подцепить к нему 2 процедуры(или TADOQuery - кому что нравится) - одна из них возрващает @@SPID, другая, собственно, считает то, что надо. Запустил 1-ю получил @@SPID, затем запустил вторую. Можно и одной процедурой обойтись - запускать с разными кодами запуска. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Как я подозреваю, можно и TADOConnection заставить сделать что-то вроде Execute('select @@SPID'), но никогда такого не пробовал и как получить результат просто не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 16:54 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2locky: авторк сожалению, не все запросы можно оптимизировать :-( (даже при наличии прямых рук) запросы может и не оптимизировать, а вот логику программы запросто. если есть некая оперативная таблица, в которую постоянно добавляются данные, то постоянно иметь в ней ~10^9 записей по меньшей мере неразумно. морально устаревшие данные можно архивировать. Вот тебе реальный пример (между прочим, тоже MSSQL): телефонный биллинг, данные о звонках хранятся в оперативной таблице. За год работы накопится такая херова туча данных, что, например, посмотреть отчёт за текущий месяц - это уже проблема. Решение: старые звонки удалить из оперативной таблицы и хранить в архиве. в результате тормоза уменьшились в несколько раз. авторЖелезо... ну, слабовато немного (дисковая подсистема не самая быстрая, а при этом запросе (и аналогичных запросах) это очень важно, т.к. перелопачивается большой объем данных) если пишется серьёзный биллинг для большой конторы (если контора небольшая - врядле у них будет под миллиард оборотов в оперативной таблице, если я правильно понял назначение таблицы), то в их же интересах купить для этого соответствующее железо авторИногда, если запрос долго выполняется, это свидетельствует только о том, что он и должен долго выполняться. не должен авторMS SQL Server EE MSSQL - это далеко не лучший сервер, если уже что и покупать, так это Oracle или Informix ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 17:15 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
2Dedushka Mazai Ну, не миллиард, а все-ж таки в 5 раз меньше (пока что)... Серъезная контора, обслуживает весь город... Государственная (это, кстати, о деньгах на железо ;-) Как ты думаешь, есть они?) Архив? Здорово, хорошая идея :-) проблема в том, что при распечатке карточки, расчете списания задолженностей и всё такое, должна быть учтена ВСЯ информация :-). Тем более, независимо от того, удалить или не удалить из базы информацию о прошедших периодах, текущий период быстрее считаться не будет (если, конечно, не считать сальдо входящее как обороты о начала времен). Тут надо тупо перелопатить много-много строк, сложить их так и этак, и выдать на гора результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 17:26 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
авторСеръезная контора, обслуживает весь город... Государственная (это, кстати, о деньгах на железо ;-) Как ты думаешь, есть они?) хе-хе. как мне это знакомо :) ну чего уж - как говаривал один небезызвестный политик: маємо те, що маємо :) зато есть отличная отмазка: медленно работает? - ну дык купите быстрые компы и всё летать будет! авторпроблема в том, что при распечатке карточки, расчете списания задолженностей и всё такое, должна быть учтена ВСЯ информация :-). не обязательно. можно так организовать бд, что будут храниться только остатки на какой-либо период и перелопачивать старые данные не будет смысла (но это опять-таки применительно к задаче) авторТем более, независимо от того, удалить или не удалить из базы информацию о прошедших периодах, текущий период быстрее считаться не будет будет-будет. как ты думаешь, есть разница между выполнением дорогого запроса на пустой таблице и на таблице с миллионами записей? этот факт проверен на практике ЗЫ: а вообще - сделать можно всё, было бы желание да возможности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 17:43 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
остатки есть, но по другому временнОму срезу. А остатки по нужному временнОму срезу по объему сопоставимы с объемом исходных данных :-) Кстати, что-то я не замечал, что при наличии нужных индексов размер таблицы влияет на скорсть выборки нужных данных (при условии, что объем нужных данных не пропорционален объему таблицы). Т.е. если меня из этой таблицы интересует, скажем 10 строк по такому-то ключу, то разница в выборке из таблицы объемом 10^3 строк не сильно отличается от выборки из таблицы объемом 10^8 строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 18:08 |
|
||
|
Прогрес Бар при загрузке Query
|
|||
|---|---|---|---|
|
#18+
Событие OnFetchProgress у DataControl'а Из Help'а Occurs periodically during an asynchronous data retrieval operation. Delphi syntax: TFetchProgressEvent = procedure(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer ; var EventStatus: TEventStatus) of object; property OnFetchProgress: TfetchProgressEvent; C++ syntax: typedef void __fastcall (__closure *TFetchProgressEvent)(TCustomADODataSet* DataSet, int Progress, int MaxProgress, TEventStatus &EventStatus); __property TFetchProgressEvent OnFetchProgress = {read=FOnFetchProgress, write =FOnFetchProgress}; Description Write an OnFetchProgress event handler to take specific action during an asynchronous data retrieval operation. The OnFetchProgress event fires periodically during the data retrieval to provide indications of its progress. Create a handler for this event to react to this periodic notification, such as providing the user with a visual indication of the progress of the data retrieval. DataSet is the ADO dataset component that triggered the OnFetchProgress event. This dataset component also contains the recordset in question. Progress is the number of records that have been received since the data fetching operation began. MaxProgress is the total number of records to be retrieved by the operation. Progress and MaxProgress used together to get percent complete. For example, Progress divided by MaxProgress and multiplied by 100 yields the percent completion of the data fetching. procedure TForm1.ADODataSet1FetchProgress(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer; var EventStatus: TEventStatus); begin Caption := 'Percent complete: ' + IntToStr(Trunc(Progress / MaxProgress * 100)) + '%'; Application.ProcessMessages; end; void __fastcall TForm1::ADODataSet1FetchProgress(TCustomADODataSet *DataSet, int Progress, int MaxProgress, TEventStatus &EventStatus) { Caption = "Percent complete: " + IntToStr(Trunc(Progress / MaxProgress * 100)) + "%"; Application->ProcessMessages; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2004, 18:15 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2115071]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 462ms |

| 0 / 0 |
