sql question

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Gaziz
Житель
Сообщения: 944
Зарегистрирован: 17 фев 2003, 15:57
Откуда: Almaty-Toronto-Vancouver-Seattle

sql question

Сообщение Gaziz »

Hi,

I need help from smart db people :)

What query will help me to find longest call and all calls longer than certain time in a table like this

Table "calls":
Phone int,
Time timestamp,
Event varchar

Example of records:
4168885555 09:00:00 "starting call"
9053332211 09:15:32 "starting call"
[Skiping thousands of records]
4168885555 09:21:22 "end call"
9055332211 09:52:22 "end call"

Thanks,
Gaziz
aleks97
Маньяк
Сообщения: 2614
Зарегистрирован: 13 янв 2006, 09:46

Сообщение aleks97 »

я не профессионал, но похоже, что с выше описаной структурой базы данных такие действия крайне затруднительны, будут занимать очень много времени (если там тысячи записей)
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

...
Последний раз редактировалось Yury 18 май 2007, 08:54, всего редактировалось 1 раз.
Аватара пользователя
Gaziz
Житель
Сообщения: 944
Зарегистрирован: 17 фев 2003, 15:57
Откуда: Almaty-Toronto-Vancouver-Seattle

Сообщение Gaziz »

aleks97 писал(а):я не профессионал, но похоже, что с выше описаной структурой базы данных такие действия крайне затруднительны, будут занимать очень много времени (если там тысячи записей)
спасибо.
да, там больше 60 миллионов записей.
Как посоветуешь изменить дезайн?
aleks97
Маньяк
Сообщения: 2614
Зарегистрирован: 13 янв 2006, 09:46

Сообщение aleks97 »

Gaziz писал(а): спасибо.
да, там больше 60 миллионов записей.
Как посоветуешь изменить дезайн?
ну что-то вроде
transaction # | FROM ph # | TO ph # | start time | end time | duration | other, dummie fields

индексы построить по transaction # и номеру телефонов или вообще несколько индексов, смотря какие поиски по базе данных будут...

опять же я не рпофессионал :)) так что осторожнее с моими советами :)
aleks97
Маньяк
Сообщения: 2614
Зарегистрирован: 13 янв 2006, 09:46

Сообщение aleks97 »

дубль :(
Аватара пользователя
Stanislav
Mr. Minority Report
Сообщения: 45212
Зарегистрирован: 19 окт 2005, 16:33
Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo

Сообщение Stanislav »

Gaziz писал(а):
aleks97 писал(а):я не профессионал, но похоже, что с выше описаной структурой базы данных такие действия крайне затруднительны, будут занимать очень много времени (если там тысячи записей)
спасибо.
да, там больше 60 миллионов записей.
Как посоветуешь изменить дезайн?
Прежде чем менять дизайн, надо знать, откуда у этой базы ноги растут. Каковы бизнес процессы?
Аватара пользователя
Gaziz
Житель
Сообщения: 944
Зарегистрирован: 17 фев 2003, 15:57
Откуда: Almaty-Toronto-Vancouver-Seattle

Сообщение Gaziz »

Stanislav писал(а):
Gaziz писал(а):
aleks97 писал(а):я не профессионал, но похоже, что с выше описаной структурой базы данных такие действия крайне затруднительны, будут занимать очень много времени (если там тысячи записей)
спасибо.
да, там больше 60 миллионов записей.
Как посоветуешь изменить дезайн?
Прежде чем менять дизайн, надо знать, откуда у этой базы ноги растут. Каковы бизнес процессы?
все просто - люди звонят и их действия пишутся в логи, откуда я и
загребаю в базу.
Аватара пользователя
Marmot
Графоман
Сообщения: 39279
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

aleks97 писал(а):
Gaziz писал(а): спасибо.
да, там больше 60 миллионов записей.
Как посоветуешь изменить дезайн?
ну что-то вроде
transaction # | FROM ph # | TO ph # | start time | end time | duration | other, dummie fields

индексы построить по transaction # и номеру телефонов или вообще несколько индексов, смотря какие поиски по базе данных будут...
+1
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

Как CDR (Call Detail Records) :) скажу, что стоит повозится и запустить отдельный процесс, который будет собирать из исходного формата, в тот, что предложил aleks97. Будет легче, хотя даже в этом случае ворочать этими миллионами записей удовольствие то еще. :(
Аватара пользователя
Marmot
Графоман
Сообщения: 39279
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

CdR писал(а):ворочать этими миллионами записей удовольствие то еще. :(
При правильных идексах и хорошо настроенной базе все будет нормально.
У нас например есть таблицы с 500М записей в MySQL, все работает достаточно быстро, хотя на оптимизацию ушло некоторое время :)
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Сообщение CdR »

Marmot писал(а):У нас например есть таблицы с 500М записей в MySQL, все работает достаточно быстро, хотя на оптимизацию ушло некоторое время :)
Вопрос в том, что именно хочется в конечном итоге. Камней там немеряно.... :( Особенного когда хочется каждую неделю чего-то нового и странного. Но это, конечно, совсем другая история.
ura
Житель
Сообщения: 915
Зарегистрирован: 09 мар 2003, 22:46

Re: sql question

Сообщение ura »

Gaziz писал(а):Hi,

I need help from smart db people :)

What query will help me to find longest call and all calls longer than certain time in a table like this

Table "calls":
Phone int,
Time timestamp,
Event varchar

Example of records:
4168885555 09:00:00 "starting call"
9053332211 09:15:32 "starting call"
[Skiping thousands of records]
4168885555 09:21:22 "end call"
9055332211 09:52:22 "end call"
А где ID сессии или гарантируется что записи идут парами всегда и ничего не теряется? (верится с трудом).
Аватара пользователя
CdR
Графоман
Сообщения: 11245
Зарегистрирован: 11 окт 2004, 19:27
Откуда: Европа, центр, за углом направо.

Re: sql question

Сообщение CdR »

ura писал(а):А где ID сессии или гарантируется что записи идут парами всегда и ничего не теряется? (верится с трудом).
хехе. С ID просто. :)
Ответить