|
|
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
hi all Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Других коннектов к базе нет. Делаю теперь два раза gstat -r -t T1: до и после свипа. Результат до свипа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. Почему для индексов остались прежние значения total dup & max dup ? Он же собрать должен был старые версии ключей, разве нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 13:53:21 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидОн же собрать должен был старые версии ключей, разве нет ? Он может собрать только те ключи, которые есть в записях на диске. Если в индексе есть "потерянные" ключи, он их собрать не может. Нет способа найти в индексе "все ключи, принадлежащие данной записи". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 13:59:17 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн может собрать только те ключи, которые есть в записях на диске. Если в индексе есть "потерянные" ключи, он их собрать не может. Нет способа найти в индексе "все ключи, принадлежащие данной записи".Гм... значит, чтобы гстат стал выдавать адекватное кол-во дубликатов, нужен только b/r ?.. :'( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:09:04 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидзначит, чтобы гстат стал выдавать адекватное кол-во дубликатов, нужен только b/r ?.. Нет, достаточно перестроить индекс с помощью alter index active. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:11:12 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, можно попробовать пересоздать индекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:11:34 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
тогда вопрос к dimitr'у: а оптимизатор в ФБ-3 учитывает как-то max dup & total dup ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:13:53 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, дык при подсчёте селективности должен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:17:39 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Таблоидоптимизатор в ФБ-3 учитывает как-то max dup & total dup ? В любом случае, такие дубликаты не возникают в мейнстриме. Они возможны только у извращенцев, которые используют update in place или меняют значение проиндексированного поля туда-сюда-обратно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:22:07 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидоптимизатор в ФБ-3 учитывает как-то max dup & total dup ? В любом случае, такие дубликаты не возникают в мейнстриме. Они возможны только у извращенцев, которые используют update in place или меняют значение проиндексированного поля туда-сюда-обратно. Предлагаю забить на извращенцев. А извращенцами считать всех, кто не руководствуется стереотипами DS :) При изменении количества и качества стереотипов DS можно пересматривать набор извращенцев. Таким образом у DS будет прямое влияние на количество извращенцев, и он сможет легко изменить их количество в ту или иную сторону просто изменив набор своих стереотипов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 14:41:58 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
NickDeeА извращенцами считать всех, кто не руководствуется стереотипами DS :) Ну-ну... Поведай нам, милое дитя: зачем ты изменяешь значение проиндексированного поля несколько раз в одной транзакции? Не можешь решить какое значение - правильное?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 15:03:04 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeА извращенцами считать всех, кто не руководствуется стереотипами DS :) Ну-ну... Поведай нам, милое дитя: зачем ты изменяешь значение проиндексированного поля несколько раз в одной транзакции? Не можешь решить какое значение - правильное?.. В триггерах обслуживающих репликацию, при update записи: Код: sql 1. 2. В табличке более миллиона записей. По recordversion есть индекс. Вытягиваю только последние обновления таким запросом: Код: sql 1. Вот ты в натуре на собеседника вешаешь проекцию "ребёнок, которого нужно упрекнуть и научить". Не надо вешать её :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 15:47:18 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНу-ну... Поведай нам, милое дитя: зачем ты изменяешь значение проиндексированного поля несколько раз в одной транзакции? Не можешь решить какое значение - правильное?.. Кстати, имеет место быть. В сложных триггерных цепочках что-то такое... Триггер 1: NEW.UPDATE_RULE=1; Триггер 2: if (NEW.UPDATE_RULE=1) then .... else Триггер 3: NEW.UPDATE_RULE=2; Триггер N: NEW.UPDATE_RULE=1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:07:39 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
DarkMaster, ты не путай. В триггере при присваивании NEW.UPDATE_RULE ничего не меняется (ни сами записи, ни индексы). И сколько бы ты раз их не переприсваивал на диск уйдёт только последнее значение, в отличии от многократных UPDATE одной и той же записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:22:49 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, Гм, таки да , погорячился... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 16:36:47 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
NickDeeВ триггерах обслуживающих репликацию, при update записи: Во-первых, и в этом случае для получения update in place нужно чтобы запись с данным tableid-recordid изменилась несколько раз за одну транзакцию . И вопрос остаётся прежним - "зачем"? Во-вторых, в данном случае полям присваиваются каждый раз новые значения и для получения потерянных нод в индексе надо чтобы сервер рухнул, не завершив транзакцию. И в-третьих, я никакую проекцию не вешаю, мне действительно интересен вопрос "зачем?" Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 18:01:36 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeВ триггерах обслуживающих репликацию, при update записи: Во-первых, и в этом случае для получения update in place нужно чтобы запись с данным tableid-recordid изменилась несколько раз за одну транзакцию . И вопрос остаётся прежним - "зачем"? Представь себе триггер, который меняет оперативный остаток. Представь себе появление в БД десятков тысяч документов в одной транзакции (например импортом из 1С в конце дня), и соответственно с ненулевыми шансами на апдейт одной и той же записи в таблице остатков по товару. Dimitry SibiryakovВо-вторых, в данном случае полям присваиваются каждый раз новые значения и для получения потерянных нод в индексе надо чтобы сервер рухнул, не завершив транзакцию. Ну вот ты сам как думаешь, как будет правильно? Если бы это была твоя БД, которую ты поддерживаешь? Какие для тебя потенциальные последствия как для пользователя БД? Деградация производительности? Вводящие в заблуждение цифры в статистике по индексам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 19:15:21 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
NickDeeПредставь себе триггер, который меняет оперативный остаток. Не, хоть убей, не получается у меня представить проиндексированный оперативный остаток. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 19:22:01 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
NickDeeредставь себе появление в БД десятков тысяч документов в одной транзакции (например импортом из 1С в конце дня), и соответственно с ненулевыми шансами на апдейт одной и той же записи в таблице остатков по товару.Мну кажется, что после загрузки 10 тыс документов пересчет статистики по индексам - просто необходим, по-любому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 19:22:02 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидПочему для индексов остались прежние значения total dup & max dup ? Он же собрать должен был старые версии ключей, разве нет ?См сюда 15806327 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 19:41:03 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeПредставь себе триггер, который меняет оперативный остаток. Не, хоть убей, не получается у меня представить проиндексированный оперативный остаток. Это странно, обрати на это внимание :) Ведь я тебе выше описал триггер на репликацию. Этот триггер висит на таблице оперативных остатков, и меняет индексированное поле recordversion. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 19:56:45 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
NickDeeВедь я тебе выше описал триггер на репликацию. Этот триггер висит на таблице оперативных остатков, и меняет индексированное поле recordversion. Ты реплицируешь хранимый агрегат вместо первички? Или, не дай бог, вместе с первичкой??? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 20:00:06 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидМну кажется, что после загрузки 10 тыс документов пересчет статистики по индексам - просто необходим, по-любому. Когда в таблице миллион записей и каждая запись обладает уникальным значением в поле F, то при обновлении значения в этом поле статистика не меняется, сколько бы раз оно не обновлялось. Если я правильно понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 20:02:54 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
NickDee то при обновлении значения в этом поле статистика не меняется вопрос, что считать статистикой. То, что использует оптимизатор - rdb$index.rdb$statistics это 1/(keys-dup), фиксируется только после создания индекса или set statistics. если про gstat, то там идет просчет индекса в его текущем состоянии. А селективность можно посчитать в любой момент, самостоятельно, если знать кол-во ключей и кол-во повторов ключей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 20:19:18 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovNickDeeВедь я тебе выше описал триггер на репликацию. Этот триггер висит на таблице оперативных остатков, и меняет индексированное поле recordversion. Ты реплицируешь хранимый агрегат вместо первички? Или, не дай бог, вместе с первичкой??? Хранимый агрегат я могу не реплицировать, но при этом буду реплицировать другие поля этой же таблицы. Это задаётся правилами синхронизации. И зачем ты привязался к частному случаю? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 20:37:02 |
|
||
|
gfix -sweep, выполняемый в монопольном коннекте, не выправляет total dup & max dup. Why ?
|
|||
|---|---|---|---|
|
#18+
kdvNickDee то при обновлении значения в этом поле статистика не меняетсявопрос, что считать статистикой. Имхо Таблоид говорит про set statistics. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2014, 20:41:50 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38604302&tid=1563748]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
182ms |
get topic data: |
5ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 445ms |

| 0 / 0 |
