Практические советы по реализации систем извлечения информации

пятница, мая 04, 2007

Multirow inserts

Немного в сторону от основной темы блога, но, думаю, многим будет полезно.

Очень часто в моей работе приходится вставлять сравнительно большое число строк (несколько миллионов) в какую-нибудь таблицу. Причем делать это регулярно. Если делать отдельный insert на каждую строчку, миллион будет вставляться очень и очень долго. В MySQL поддерживается специальный синтаксис для multirow inserts: INSERT INTO my_table (col1, col2) values (1, 2), (3, 4), ... (99, 100). Такой запрос вставит сразу 50 строчек. Причем очень быстро. Число строчек, которые можно вставить за один запрос очень велико и ограничено сверху, если я не ошибаюсь, максимальным размером пакета, который может принять MySQL. На практике, я обычно вставляю по несколько десятков тысяч строк одним запросом.

К сожалению, ни Oracle, ни MS SQL не поддерживают этот замечательный синтаксис. Долгий поиск дал всего две рекомендации: использовать sqlldr, LOAD DATA или INSERT INTO <table name> SELECT FROM <table name>. Практически отчаявшись, я заглянул в Википедию и нашел там спасение.

Во-первых, оказалось, что чудесный синтаксис из MySQL это часть стандарта SQL 92 (это, действительно, так — ключевые слова "query expression", "insert statement", "table value constructor") и он поддерживается также в DB2 и PostgreSQL.

Во-вторых, INSERT INTO <table name> SELECT FROM <table name> может выглядеть так (пример для MS SQL):

INSERT INTO my_table (col1, col2)
SELECT 1, 2
UNION ALL
SELECT 3, 4
Такой запрос вставит в таблицу сразу две строчки. С воодушевлением я принялся за тестирование. Сначала попробовал вставлять 50 строчек за раз. Скорость возрасла, но не сильно. Потом попробовал 200 — стало медленнее! Попробовал 1000 и получил ошибку от MS SQL! Дальнейшие эксперименты позволили сделать следующие выводы:
  • Оптимальное количество строчек в одном запросе — 5-10. Так иногда удается достичь, практически, линейного роста скорости вставки.
  • Скорость вставки очень сильно зависит от размера строчки. В одном из экспериментов я убрал из запроса одну колонку типа bit и скорость возросла на 30%!
  • Если какую-то колонку можно вставить небольшим количеством update'ов, возможно, так будет заметно быстрее.
Для удобной работы с multirow inserts я сделал простой интерфейс BulkInserter с реализацией пока только для MS SQL. В ближайшее время сделаю реализацию для MySQL, допишу документацию и выложу в Java IR Utils.

57 комментариев:

Анонимный комментирует...

А техника "prepare запрос, много раз выполнить с разными параметрами" не рулит?

krondix комментирует...

Разумеется, я так и делаю.
Это все равно очень медленно.
И multirow insert тоже prepared.

Приходи завтра, я тебе покажу как одни и те же данные вставляются в пять раз быстрее, по сравнению с кучей одиночных prepared inserts :-)

Stepan Koltsov комментирует...

Что, такие извращения работают быстрее, чем стандартный addBatch()? Не верю.

Анонимный комментирует...

По поводу MSSQL. Чем не устраивает вставка через bulk insert или bcp? Быстрей же будет намного.

Примеры:

bcp ##temp_authors out temp_authors.txt -c -Sservername -Usa -Ppassword

BULK INSERT Northwind.dbo.[Order Details]
FROM 'f:\orders\lineitem.tbl'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = ':\n',
FIRE_TRIGGERS
)

krondix комментирует...

Степа, ты знаешь как работает addBatch()?
Если ты думаешь, что он формирует один запрос и за один раз все вставляет, ты ошибаешься.

Попробуй, например, сделать триггер на вставку, который будет инкрементировать какой-нибудь счетчик на каждый запрос.

Из реальной жизни: логи классификатора (~два миллиона достаточно больших строчек) раньше копировались с помощью addBatch() примерно полтора часа. С помощью такого извращения они копируются меньше 10 минут.

krondix комментирует...

Если я не ошибаюсь, для BULK INSERT нужно чтобы файл был на той же машине что и SQL Server или был расшарен по самбе.

У bcp вроде таких ограничений нет, но есть ли у него версия для Linux?

Анонимный комментирует...

Ну файлик можно и перелить на сервер. В том числе и чисто средствами сервера через процедуры
xp_cmdshell
или (без расшаривания ресурсов)
exec @HResult = sp_OACreate 'Scripting.FileSystemObject', @FSO OUTPUT
if @HResult < 0 goto GeneralError

exec @HResult = sp_OAMethod @FSO, 'CreateTextFile', @TextStream OUTPUT, @FileName, 0, 0
if @HResult = -2146828230 goto FileExistsError

и далее
exec @HResult = sp_OAMethod @TextStream, 'WriteLine', null, @Line

Направление понятно? 8-)

А версии bcp под Linux нет.

krondix комментирует...

О! Спасибо!
Я потестирую этот вариант. Скорее всего, для миллиона строчек это будет быстрее. А для тысячи, не уверен.

Анонимный комментирует...

Извините за глупый вопрос, но все понятно делается в рамках единой транзакции, да?

krondix комментирует...

Да, конечно, в единой транзакции

triampurum комментирует...

для mySQL вспоминается ещё INSERT DELAYED - буферизация инсертов и выполнение блоками.

Анонимный комментирует...

а так?

DECLARE @tempVar TABLE (col1 int, col2 int)

INSERT INTO @tempVar (col1, col2)
VALUES (1, 2)

INSERT INTO @tempVar (col1, col2)
VALUES (3, 4)

SELECT col1, col2 INTO NewTable
FROM @tempVar

не будет падать при большом количестве строк и должно быть быстрей чем просто много прямых инсертов..

только есть сомнение - @tempVar может оказаться обыкновенной временной таблицей

lrrr комментирует...

Может кому интересно, я тут постестил немного на SQLite (на простенькой табличке, правда) -- разница небольшая, плюс-минус 20%.

Что в общем неудивительно, SQLite засчет своей нереальной простоты и так очень сильно быстрый.

anatolix комментирует...

На самом деле в MySQL самое быстрое это Load Data Infile.

Индексы перед всем этим делом нужно создать и подизейблить, а потом включить. Если их просто тупо создать потом то стоит учитывать что alter table в mysql просто создает новую таблицу с индексом, а потом неторопливо в нее копирует данные. Таким образом 3 индекса это 3 копирования.

в Oracle по утверждению наших dba самый быстрый метод это создать так называемую external table, и подключить в нее свой файл. Сам не пробовал.

Анонимный комментирует...

Кто пользуется блоггером - проверьте работает эта фишка или нет

Анонимный комментирует...

Хмм, долго искала инфу по этой теме. Сенькс :)

Авто комментирует...

Искал инфу по INSERT INTO. Спасибо.

Анонимный комментирует...

london dating [url=http://loveepicentre.com/]dating gift ideas[/url] free gay personals connecticut http://loveepicentre.com/ adult dating

Анонимный комментирует...

http://lumerkoz.edu Educational links, http://barborazychova.com/members/Buy-Lexapro.aspx incline http://talkingaboutwindows.com/members/Buy-Clarinex/default.aspx servicesede guerrero http://www.ecometro.com/Community/members/Buy-Bactrim.aspx extradited http://soundcloud.com/aricept fabric http://soundcloud.com/propecias andante

Анонимный комментирует...

the difference in bacteria on cooked meat and raw meat [url=http://usadrugstoretoday.com/categories/gum.htm]gum[/url] contemporary occupational safety and health management issues http://usadrugstoretoday.com/products/plendil.htm tea induced out of body experience http://usadrugstoretoday.com/products/stop-smoking.htm
where to buy alumiuim sulfate in michigan [url=http://usadrugstoretoday.com/catalogue/y.htm]medications without a prescription[/url] kidney cysts without fluid [url=http://usadrugstoretoday.com/products/lotensin.htm]science diet feline food[/url]

Анонимный комментирует...

home health co ronkonkona new york [url=http://usadrugstoretoday.com/categories/perdita-di-peso.htm]perdita di peso[/url] medical evaluations alaska http://usadrugstoretoday.com/products/cefixime.htm big breast solft core http://usadrugstoretoday.com/products/starlix.htm
health varicose thailand [url=http://usadrugstoretoday.com/products/zyrtec.htm]zyrtec[/url] burning tip penis [url=http://usadrugstoretoday.com/products/hyaluronic-acid.htm]central maine partners in health auburn[/url]

Анонимный комментирует...

performance health [url=http://usadrugstoretoday.com/products/fludac.htm]fludac[/url] embrace breast enhancement unbias http://usadrugstoretoday.com/products/oxytrol.htm myeloproliferative disorder syndrome http://usadrugstoretoday.com/products/luvox.htm
management of varicella zonter virus infections [url=http://usadrugstoretoday.com/products/flagyl-er.htm]flagyl er[/url] foundations of psychiatric mental health test bank [url=http://usadrugstoretoday.com/products/acticin.htm]women urinary hesitancy[/url]

Анонимный комментирует...

breast oncologists at baylor dallas [url=http://usadrugstoretoday.com/products/hytrin.htm]hytrin[/url] migraine preventative medicine http://usadrugstoretoday.com/products/viagra-super-active-plus.htm smoke signal ecard http://usadrugstoretoday.com/catalogue/p.htm
high eosin and co2 in blood test [url=http://usadrugstoretoday.com/products/bactrim.htm]bactrim[/url] allagille syndrome [url=http://usadrugstoretoday.com/products/actonel.htm]medical molded[/url]

Анонимный комментирует...

old fashioned http://topcitystyle.com/navy-blue-white-jackets-amp-sweatshirts-color124.html paris hilton clothes [url=http://topcitystyle.com/polo-ralph-lauren-men-brand14.html]old fashioned tomato pie[/url] henschenklein worten
http://topcitystyle.com/just-cavalli-hoodie-decorated-with-swarowski--item2362.html punk rock baby clothes [url=http://topcitystyle.com/bmw-motorsport-brand60.html]womens clothes shops online[/url]

Анонимный комментирует...

custom dodge van results http://carautonews.in/dodge-com/dodge-dakota-front-axle-problem automobile door latch repair
[url=http://carautonews.in/cadillac/houston-cadillac-dealer]performance mercedes parts[/url] mercedes alternator 1982 auto zone [url=http://carautonews.in/auto-info/auto-venue-sd]auto venue sd[/url]
automobile age http://carautonews.in/ford/ford-turbo-camshaft-profile
[url=http://carautonews.in/bike-com/sport-bike-apparal]automobile mover missouri[/url] auto replacement mirrors [url=http://carautonews.in/ford/ford-turbo-camshaft-profile]ford turbo camshaft profile[/url]
salvage for vw auto parts http://carautonews.in/bike/indoor-dirt-bike-track-in-ohio
[url=http://carautonews.in/auto-info/leading-edge-auto-glass]drag racing nhra books[/url] chrome rims on mercedes benz ml 430 [url=http://carautonews.in/bike/haro-bike-logo]haro bike logo[/url]

Анонимный комментирует...

extra long dildo http://pornrapidshare.in/xxx-girls/animal-trailers-xxx
[url=http://pornrapidshare.in/hot-teens/pics-of-teens]chubby dildo torrent[/url] latina anal heartbreakers torrents [url=http://pornrapidshare.in/teens/spanish-teens-free-xxx-movie]spanish teens free xxx movie[/url]
vagina dildo video http://pornrapidshare.in/tit/roped-tit
[url=http://pornrapidshare.in/virgin/her-virgin-cunt-accepted-me-only-grudgingly]anal cancer insurance coverage[/url] wife huge dildo stories [url=http://pornrapidshare.in/teen-love/teen-sex-love-video]teen sex love video[/url]
hentai series youtube http://pornrapidshare.in/teen-tgp/teen-japanese
[url=http://pornrapidshare.in/teen-model/free-teen-pictures]hinata x naruto hentai[/url] streaming hentai video free [url=http://pornrapidshare.in/teen-city/teen-hairstyles-for-girls]teen hairstyles for girls[/url]
midget sexy bridget http://pornrapidshare.in/pissing/danish-girls-pissing
[url=http://pornrapidshare.in/defloration/preeteen-defloration]flash hentai porn games[/url] anime hentai sites [url=http://pornrapidshare.in/small-tits/tits-sex]tits sex[/url]

Анонимный комментирует...

chevron tegra synthetic gear lubricant iso 320 http://xwe.in/bondage/forced-fem-bondage
[url=http://xwe.in/orgy/big-gay-cock-orgy-galleries]dirty adult funny christmas quotes[/url] adult search engines video clips [url=http://xwe.in/shemales/shemales-bulges]shemales bulges[/url]
anal cumshot pictures http://xwe.in/toon/toon-models
[url=http://xwe.in/adult-video/overextended-adult-children]adult irc server[/url] xxx free webcam porn [url=http://xwe.in/erotic-stories/erotic-pictures-of-married-couples]erotic pictures of married couples[/url]
sexy wives on video http://xwe.in/oral/diagram-of-the-oral-cavity
[url=http://xwe.in/condom/okamoto-condoms]tw25b lubricant grease[/url] anal intensive 4 [url=http://xwe.in/hcg-oral/best-oral-sex-techniques-for-girls]best oral sex techniques for girls[/url]
free porn vidioes http://xwe.in/bondage/beginners-bondage-set
[url=http://xwe.in/oral/dli-oral-proficiency-interview]grandmother grandson adult stories[/url] holloway adult cyclone jacket [url=http://xwe.in/bbw/teen-young-bbw]teen young bbw[/url]

Анонимный комментирует...

calvin klein jalli http://www.thefashionhouse.us/xl-women-apos-s-long-sleeve-tops-size6.html air force clothes [url=http://www.thefashionhouse.us/jeans-page2.html]tv video chanel[/url] designer dresses
http://www.thefashionhouse.us/-leather-bags-tote-purses-gucci-category39.html designer emilio [url=http://www.thefashionhouse.us/multicolored-casual-color13.html]mail order shoes[/url]

Анонимный комментирует...

adverting dental vacancies [url=http://usadrugstoretoday.com/products/ed-discount-pack-2.htm]Order ED discount pack 2[/url] islamic medicine accomplishments http://usadrugstoretoday.com/products/zithromax.htm
walmart generic drugs [url=http://usadrugstoretoday.com/products/lynoral.htm]lynoral[/url] leukotrienes asthma [url=http://usadrugstoretoday.com/products/floxin.htm ]when was the great depression [/url] seris medical equipment cleaners
what are the developments in health tourism [url=http://usadrugstoretoday.com/products/cialis-soft-tabs.htm]cialis soft tabs[/url] medical terms for short and long sight http://usadrugstoretoday.com/categories/de-la-salud-de-la-mujer.htm
blood pressure free program [url=http://usadrugstoretoday.com/products/hyaluronic-acid.htm]hyaluronic acid[/url] pitcairn drug [url=http://usadrugstoretoday.com/categories/arthritis.htm ]cheap health insurance georgia [/url] mental health schools in miami fl

Анонимный комментирует...

designer labels uk carhartt http://www.thefashionhouse.us/?action=products&product_id=2469 designer kitchens [url=http://www.thefashionhouse.us/xxl-winter-jackets-size8.html]revealing fashions[/url] resume for graphic designer
http://www.thefashionhouse.us/white-grey-gucci-color26.html dog shoes [url=http://www.thefashionhouse.us/28-stretch-jeans-size18.html]clothes wholeseller[/url]

Анонимный комментирует...

travel brazil http://xwl.in/tours visit and travel
[url=http://xwl.in/car-rental/lancaster-california-car-rental]travel clinic calgary[/url] travel website owner partnership buy [url=http://xwl.in/tours/november-walking-tours-in-england]november walking tours in england[/url]
furance for a 1989 terry resort travel trailer http://xwl.in/flight/amsterdam-flight-hotel
[url=http://xwl.in/airlines/jobs-delta-airlines]travel wizzard[/url] hdr and time travel [url=http://xwl.in/cruises/cronin-cruises-and-travel]cronin cruises and travel[/url]
world international travel http://xwl.in/inn/bovarian-inn shower and travel and slippers [url=http://xwl.in/plane-tickets/plane-tickets-costs]plane tickets costs[/url]

Анонимный комментирует...

new mexico lottery official site http://xwn.in/baccarat_baccarat-casino-ab jackpot nevada
[url=http://xwn.in/casino-playing-cards_old-west-playing-cards]free printable fraction bingo cards[/url] riverboat gambling legal in california [url=http://xwn.in/bingo_bingo-gossip]bingo gossip[/url]
davis hill casino http://xwn.in/roulette_on-line-roulette
[url=http://xwn.in/casino-playing-cards_opah-playing-cards]i dream of jeannie casino chairs[/url] lottery odds on the thunderball [url=http://xwn.in/jackpot_tennessee-lottery-jackpot]tennessee lottery jackpot[/url]
casino games for laptop computers http://xwn.in/baccarat_don-tigert-baccarat-wealth casino in britiish columbia canada [url=http://xwn.in/casino-online_hotel-resort-casino-yacht-asuncion]hotel resort casino yacht asuncion[/url]

Анонимный комментирует...

volkswagen things for sale http://xwm.in/geo/geo-tracker-repair importing classic mercedes to florida
[url=http://xwm.in/opel/opel-speedster-foe-sale]horse barrel racing[/url] diesel mercedes car for sale [url=http://xwm.in/dodge/how-to-change-a-dodge-stratus-air-filter]how to change a dodge stratus air filter[/url]
automobile rust inhibitor http://xwm.in/racing
[url=http://xwm.in/radiator/radiator-valve-fills-with-water]ge capital auto financial services[/url] mercedes slk 350 roadster reviews [url=http://xwm.in/royce/rolls-royce-engines]rolls royce engines[/url]
closed auto trailer rental http://xwm.in/porsche/porsche-cars-canada-limited
[url=http://xwm.in/saleen/saleen-wings]dodge grand caravan repair manuel[/url] mercedes benz diesel connecting rod bearing bolt [url=http://xwm.in/harley/harley-davidson-xxl-cotton-twill-prestige-jacket]harley davidson xxl cotton twill prestige jacket[/url]

dfgfdgdf комментирует...

dssdfdfd

Анонимный комментирует...

индивидуалки доступные москва, http://remuwacher.prv.pl/ снять проститутку в городе кирове, http://remuwacher.prv.pl/map.html стоимость проститутки на час, http://remuwacher.prv.pl/chernokozhie-prastitutki.html чернокожие праститутки, http://remuwacher.prv.pl/page-3.html досуг интим транс москва, http://remuwacher.prv.pl/neobyknovennyy-dosug-individualki-v-moskve.html необыкновенный досуг индивидуалки в москве, http://strenico.prv.pl/ проститутки Сатка, http://strenico.prv.pl/map.html самые дешевые проститутки города москвы, http://strenico.prv.pl/page-2.html индивидуалки за 2000р москвы, http://strenico.prv.pl/deshvye-prostitutki-molodye-chas.html дешёвые проститутки молодые час, http://strenico.prv.pl/prostitutki-kasli.html проститутки Касли, http://wenibucas.prv.pl/ проститутки леди москвы, http://wenibucas.prv.pl/map.html индивидуалки москвы индивидуалкиексуалки, http://wenibucas.prv.pl/prostitutka-anilingus.html проститутка анилингус, http://wenibucas.prv.pl/page-3.html путаны москвы интерактивная карта, http://wenibucas.prv.pl/individualki-dostupnye-moskva.html

Анонимный комментирует...

Buy online good replica watches eta, http://abiturtmasen.co.tv/ Buy online new replica watches canada, http://acuberianfo.co.tv/ Buy online new vacheron constantin malte perpetual calendar, http://adebuprica.co.tv/ Buy online replica gmt master ii rolex ceramic bezel, http://afrebumce.co.tv/ Buy online cheap rxep yrarralic aal liroyoodl ex daytooniea, http://agopmertus.co.tv/ Cheap mont blance, http://akwniosm.co.tv/ Buy online cheap cheap designer bags, http://amozeturen.co.tv/ Best new mont blanc rollerball refill, http://amsterlopteds.co.tv/ Buy online new vintage iwc watch, http://amtunidso.co.tv/ Buy at a discount online rolex deep sea replica, http://anecurtops.co.tv/ Buy at a discount online replica wrist watches with yurning bezel, http://animastems.co.tv/ Best new rolex masterpiece swiss replica, http://antumerce.co.tv/

Анонимный комментирует...

Low cost bvlgari replica men, http://abiturtmasen.co.tv/map.html Buy online good pre owned watches, http://acuberianfo.co.tv/map.html Buy online new cartier lady watch, http://adebuprica.co.tv/index1.html Buy online new mont blanc mozart, http://afrebumce.co.tv/map.html Buy online cheap swiss watch collection, http://agopmertus.co.tv/map.html Buy cartier montre, http://akwniosm.co.tv/map.html Low price what are the best replica watches, http://amozeturen.co.tv/map.html Buy online new patek philippe 3940, http://amsterlopteds.co.tv/map.html Price patek philippe sculpture, http://amtunidso.co.tv/map.html Best new german replica rolex watch, http://anecurtops.co.tv/map.html Low cost used panerai watches, http://animastems.co.tv/map.html Price mont blanc discount, http://antumerce.co.tv/map.html

Анонимный комментирует...

Buy at a discount online swiss ladies watch, http://aoswminope.co.tv/ Price chopard watches, http://aoznusiwo.co.tv/ Discount replica rolex breitling omega watches free ship, http://appletags.co.tv/ Buy online exact replica rolex, http://argunentarimus.co.tv/ Best new replica panerai travel clock, http://astrunaerches.co.tv/ Price spot on replica watches, http://azmoxcmod.co.tv/ Discount panerai montre, http://babisortso.co.tv/ Price discount fashion watches, http://baceracunesp.co.tv/ Best new hublot classic, http://berniunesta.co.tv/ Buy panerai radiomir black, http://bevynoceazu.co.tv/

Анонимный комментирует...

Low cost montblanc stylo, http://aoswminope.co.tv/map.html Buy at a discount online corum watch company, http://aoznusiwo.co.tv/map.html Buy cartier american tank watch, http://appletags.co.tv/map.html Buy online new designer bags, http://argunentarimus.co.tv/map.html Discount mont blanc meisterstuck watch, http://astrunaerches.co.tv/map.html Low cost replica watches mens dual zone tank watch, http://azmoxcmod.co.tv/map.html Best new replica cartier watches swiss made, http://babisortso.co.tv/map.html Price watches strap, http://baceracunesp.co.tv/map.html Price mont blanc ballpoint pens, http://berniunesta.co.tv/map.html Best new luminor 1950 8 days, http://bevynoceazu.co.tv/map.html

Анонимный комментирует...

Discount ferrari daytona replica, http://bsyuaytywdiofhu.co.tv/ Buy replica watches omega mens semaster ocean, http://budenaster.co.tv/ Buy wholesale replica rolex dropship, http://bumbersoh.co.tv/ Best new replica rolex paul newman daytona, http://camotrewlo.co.tv/ Best new designer men watches, http://castopagenu.co.tv/ Buy online cheap pam 183, http://caw0ls.co.tv/ Best new patek philippe sculpture, http://cawnuremtas.co.tv/ Buy online cheap panerai luminor gmt watches, http://cenugeburg.co.tv/ Buy online cheap replica cartier love bracelet, http://certohugeb.co.tv/ Buy online good panerai radiomir gmt alarm, http://cinopuraste.co.tv/

Анонимный комментирует...

Buy online good mont blanc limited, http://editremsam.co.tv/ Discount cheap cartier, http://ehuoszms.co.tv/ Buy online cheap cartier watch auction, http://eisndsqhuisoan.co.tv/ Buy aleetgeasgll repwlsiracaw lpwawtelcp haes, http://emcrunastog.co.tv/ Cheap finest watches, http://emudziwas.co.tv/ Buy online good replica patek philippe, http://encopetunes.co.tv/ Discount panthere cartier, http://endunpole.co.tv/ Buy patek philippe 24 watch, http://engenimades.co.tv/ Buy online good vacheron constantin watch, http://ensglang.co.tv/ Buy at a discount online proelpliicarh porhis wriaatsrcsiehellps, http://enurgaserd.co.tv/

Анонимный комментирует...

Discount breitling montbrillant legende replica, http://editremsam.co.tv/map.html Best new cartier tourbillon, http://ehuoszms.co.tv/map.html Buy at a discount online ww2 german watches replica, http://eisndsqhuisoan.co.tv/map.html Price buy cheap watches, http://emcrunastog.co.tv/index1.html Discount replica cartier watch swiss made, http://emudziwas.co.tv/map.html Price replica wrist watches for pilots, http://encopetunes.co.tv/map.html Low cost mens swiss watch, http://endunpole.co.tv/map.html Best new wholesale designer handbag, http://engenimades.co.tv/map.html Buy online good cartier midsize tank, http://ensglang.co.tv/map.html Buy robert maron, http://enurgaserd.co.tv/map.html

Анонимный комментирует...

Price swiss replica store rolex watches, http://eonskap.co.tv/ Buy online good jaeger lecoutre, http://eplementaros.co.tv/ Buy at a discount online penerai watch, http://eplemutras.co.tv/ Buy at a discount online top ten watch brands, http://epmeiptu.co.tv/ Buy online tag heuer formula one, http://epsaismeos.co.tv/ Buy online new how to spot a fake omega watch, http://ernustuswe.co.tv/ Buy online cac111d bt0705, http://ertusnawes.co.tv/ Buy online good iwc uhren, http://escomatus.co.tv/ Buy sell cartier watch, http://esodmunds.co.tv/ Buy online good mont blanc star bracelet, http://espusmaod.co.tv/

Анонимный комментирует...

Discount fake toy watches, http://evtrubeqops.co.tv/ Cheap cartier automatic, http://ewalotinum.co.tv/ Price replica calibre watches, http://ewaminertas.co.tv/ Low cost iwc uhren, http://ewurnicsa.co.tv/ Price franck mueller replica watches los angeles, http://eyszimops.co.tv/ Buy at a discount online iwc vintage, http://ezlustraes.co.tv/ Buy online good swiss made replica breitling bentley 6.75 watch, http://famibunusez.co.tv/ Buy online new francaise watch, http://febuwpaste.co.tv/ Cheap vacheron constantin automatic, http://ferrelones.co.tv/ Discount wholesale replica fine watches, http://genbomerfa.co.tv/

Анонимный комментирует...

Buy online new montblanc meisterst?ck, http://evtrubeqops.co.tv/map.html Low price vacheron constantin montre, http://ewalotinum.co.tv/map.html Buy at a discount online cartier watches pasha, http://ewaminertas.co.tv/map.html Buy online superocean watch, http://ewurnicsa.co.tv/map.html Best new pam183, http://eyszimops.co.tv/map.html Buy online good handbags, http://ezlustraes.co.tv/map.html Buy online cheap buy watches cheap, http://famibunusez.co.tv/map.html Buy highest quality exact replica vacheron constantin, http://febuwpaste.co.tv/map.html Buy online where to buy patek phillipe replica watches - los angeles, http://ferrelones.co.tv/map.html Buy vacheron constantin malte perpetual calendar, http://genbomerfa.co.tv/map.html

Анонимный комментирует...

спб проститутки поиск, http://secorti.com.nu/ пожилые проститутки в спб, http://secorti.com.nu/map.html проститутки Карабаш, http://secorti.com.nu/page-2.html проститутки на шаболовской добрынинской, http://secorti.com.nu/blyadi-individualki-moskvy-hotbox-ru.html бляди индивидуалки москвы hotbox ru, http://secorti.com.nu/prastitutki-bryanska.html праститутки брянска, http://tyredigi.com.nu/ индивидуалки в краснодаре, http://tyredigi.com.nu/map.html москва индивидуалки которые выезжают на один час, http://tyredigi.com.nu/putany-babochki-pitera.html путаны бабочки питера, http://tyredigi.com.nu/prostitutki-chehii.html проститутки чехии, http://tyredigi.com.nu/blyadi-spb-deshvye.html бляди спб дешёвые, http://ukologi.com.nu/ досуг в москве проститутки индивидуалки, http://ukologi.com.nu/map.html интим досуг чита, http://ukologi.com.nu/prostitutki-anusling-spb.html проститутки ануслинг спб, http://ukologi.com.nu/spb-prostitutki-poisk.html

dfdh комментирует...

dgfg

hghjggggggggg комментирует...

gggggggggggg

Анонимный комментирует...

Buy online must cartier watch, http://gertusspan.co.tv/ Buy online swiss made replica cartier, http://gewasmopa.co.tv/ Price high end replica breitling watches, http://gewratuspe.co.tv/ Buy online new chronomaster watch, http://gimpoertwes.co.tv/ Buy online lady swiss watches, http://ginanscue.co.tv/ Buy online cheap hong kong replica breitling omega rolex watches free shipping, http://goepwsaple.co.tv/ Buy iwc prices, http://gorpserdoms.co.tv/ Buy online new aquatimer automatic 2000, http://granuweta.co.tv/ Buy online good replica swiss movement watches, http://grapowegans.co.tv/ Low cost cartier watch repair, http://grustmebap.co.tv/

Анонимный комментирует...

Buy online good replica brietling watches, http://gertusspan.co.tv/map.html Buy online montblanc swiss, http://gewasmopa.co.tv/map.html Cheap solid gold replica rolex, http://gewratuspe.co.tv/map.html Buy iwc davinci, http://gimpoertwes.co.tv/map.html Buy cartier watches, http://ginanscue.co.tv/map.html Cheap replica watches made in china, http://goepwsaple.co.tv/map.html Buy replica panerai travel alarm, http://gorpserdoms.co.tv/map.html Buy vintage jaeger lecoultre watches, http://granuweta.co.tv/map.html Buy online cartier watches used, http://grapowegans.co.tv/map.html Buy online good men watches, http://grustmebap.co.tv/map.html

Анонимный комментирует...

Buy at a discount online patek philip watches, http://gsaiwanauis.co.tv/map.html Buy online rolex pro hunter sadweller replica watches with swiss movement, http://gufnuoswer.co.tv/map.html Price fantasy replica watches, http://guhewrubes.co.tv/map.html Buy montblanc meisterstuck gold, http://gumernas.co.tv/map.html Discount pam panerai, http://hadengudwes.co.tv/map.html Discount wholesale luxury watch, http://hantostruge.co.tv/map.html Buy online good vintage vacheron constantin, http://hetsianogert.co.tv/map.html Buy online cheap discount cartier watches, http://hewerndis.co.tv/map.html Buy online cheap replica luminox watches, http://hlopecnewru.co.tv/map.html Buy online cheap mont blanc ballpoint pens, http://hogertaus.co.tv/map.html

Анонимный комментирует...

I am very happy you took the time and said this...

Jordan
ethos insurance

упар комментирует...

вап

http://goldserfer.ru комментирует...

Золотой серфер|Лучшие бесплатные CMS интернета

http://www.goldserfer.ru

Alex комментирует...

Золотой серфер|Лучшие бесплатные CMS интернета


http://goldserfer.ru/

Анонимный комментирует...

You don't have to think of collateral issue as it is you can paying sure student automotive loans without a credit ratings. The program will offer current or even future instructors an extra bonus to continue to educate? Merely do this whenever you can normally meet up with your month-to-month expenditures with no problems. instant payday loans uk The $150 request fee have to be paid, as with several options, in addition to regular expenses must be created during the loan term.

Анонимный комментирует...

Most of these payments needs to be accurately for auction on your home property finance loan forms. Low cost collateralized loan not merely provide together with low interest price but also by using elastic payment plans. A applicants aren't required to face any type of restriction even though availing of your urgent quantity. instant payday loan When you have a list of a variety of banks and lenders who seem to offer bank loans, you can either call them or visit them in person!