кеш запросов

Alexey Arnautov
Дата: 14.10.2003 11:28:08
Предположим, есть table_ из 4х полей.
id long,
aa varchar(255),
bb varchar(255),
cc image.

В поле cc хранится, например данные, размером 1-2Мб.

Равносильны ли с точки зрения кеша выборки

select id,aa,bb from table_


и

select * from table_


?

Т.е. при первом запросе, будут ли выбираться (в кеш) поля cc и возвращаться только id, aa, bb? Т.е. Последующая выборка (после первого select)
select * from table_ будет выполняться быстрее, чем без первого select?
Alexey Arnautov
Дата: 14.10.2003 11:28:41
может где почитать про это можно? Можно на engl.
iSestrin
Дата: 14.10.2003 11:40:46
другими словами, чем объяснить тормознутость
select * from table_
?
- большим размером данных image, кэши запросов тут почти не при чем

небольшую помощь может оказать увеличение размера пакета tds до максимума
Alexey Arnautov
Дата: 14.10.2003 11:54:55
не совсем. Тормознутость - она понятна. Есть 2 select:

select id from table_
select cc from table_

Будет ли второй select выполняться быстрее, при наличии первого. Суть не в том, что второй тормозит, а в том, что например, если я делаю запрос select id from table_ , то попадают ли данные из поля cc при этом в кеш? Т.е. при цикле в 1000 запросов select id from table_, умрет ли кеш от того, что в него попадают и данные из cc? Или он будет настолько же эффективен, как и для таблицы без поля cc.

Т.е. для таблицы table_ (id varchar(255), aa varchar(255), bb varchar(255))
Glory
Дата: 14.10.2003 11:57:09
Т.к. BLOB поля храняться отдельно, то соответсвенно и страницы данных, помещаемые в кэш у них будут разными.
Поэтому после select id,aa,bb from table_ запрос select * from table_ может взять id,aa,bb уже из кэша, если они там конечно остались.
iSestrin
Дата: 14.10.2003 12:00:42
нет, конечно не попадают, тем более, что image вообще на других страницах лежат

потом еще, даже если бы попадали, то любой кэш обязательно обладает свойством вытеснения старых данных новыми...
Alexey Arnautov
Дата: 14.10.2003 12:19:58
2 Glory:
автор писал:
Поэтому после select id,aa,bb from table_ запрос select * from table_ может взять id,aa,bb уже из кэша, если они там конечно остались.

Это понятно, сформулируем по другому. Попадут ли данные из cc в кеш, при выборке select id from table_, при условии, что
table_ (id varchar, cc image)

Я, честно говоря, думаю, что нет. Сейчас программку накатаю и потестю. О результатах сообщу.
Glory
Дата: 14.10.2003 12:27:11
Значит так.
Данные размещаются на страницах. Страница - это минимум одна целая запись, за исключением BLOB полей. BLOB поля храняться в отдельных страницах данных. В кэш страница попадает целиком.
Поэтому при select id from table_ в кеш попадут только страницы, содержащие id.
Все.