{"id":196682,"date":"2013-10-10T09:11:03","date_gmt":"2013-10-10T05:11:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=196682"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=196682","title":{"rendered":"<span class=\"post_title\">\u041f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u043a \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u044e\u0449\u0435\u0439 OpenSource \u0421\u0423\u0411\u0414<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/b37\/8b6\/2d8\/b378b62d8c490b812df3236d0626c1bc.png\" alt=\"image\"\/><br \/>  \u041c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0422\u0435\u0445\u0430\u0441\u0441\u043a\u0430\u044f \u0440\u0435\u0437\u043d\u044f \u0431\u0435\u043d\u0437\u043e\u043f\u0438\u043b\u043e\u0439\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u043a \u0421\u0423\u0411\u0414, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0433\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e.<br \/>  <a name=\"habracut\"><\/a><br \/>  <b>\u0412\u0432\u043e\u0434\u043d\u0430\u044f<\/b><br \/>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u0431\u0435\u0437 \u043e\u0431\u0449\u0438\u0445 \u0441\u043b\u043e\u0432 \u043f\u0440\u043e \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430.<br \/>  \u041d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441, \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b\u043b\u043e \u043d\u0435 \u0432\u0437\u044f\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0421\u0423\u0411\u0414 \u0441 \u0443\u0436\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u043c, \u043e\u0442\u0432\u0435\u0442 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439: \u00ab\u0445\u043e\u0447\u0435\u0448\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u0434\u0435\u043b\u0430\u0439 \u044d\u0442\u043e \u0441\u0430\u043c\u00bb(\u0421). \u0410 \u0435\u0441\u043b\u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e, \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u043e \u043d\u0430 \u043d\u0430 \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u044f\u0434\u043e\u0432\u043e\u043c \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0435 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u044f \u0438 \u043e\u0441\u043e\u0431\u044b\u0445 \u0437\u0430\u0442\u0440\u0430\u0442.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u043e\u043f\u044b\u0442\u043d\u043e\u0439 \u0421\u0423\u0411\u0414 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044e <a href=\"http:\/\/virtuoso.openlinksw.com\/dataspace\/doc\/dav\/wiki\/Main\/\">OpenLink Virtuoso<\/a>. \u0412 \u0435\u0451 \u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f, \u043d\u043e \u044d\u0442\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u0434\u0440\u0443\u0433\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f. \u041f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0430 \u0421\u0423\u0411\u0414? \u0410\u0432\u0442\u043e\u0440\u0443 \u043e\u043d\u0430 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f. \u0411\u044b\u0441\u0442\u0440\u0430\u044f, \u043b\u0435\u0433\u043a\u0430\u044f, \u043c\u043e\u0449\u043d\u0430\u044f. \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b-\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b-\u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0411\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0448\u0442\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438, \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0421-\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0438\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043e\u043a, \u043b\u0438\u0448\u044c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0431\u043e\u0440\u043a\u0430 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440.<\/p>\n<p>  <b>\u0422\u0438\u043f \u0438\u043d\u0434\u0435\u043a\u0441\u0430<\/b><br \/>  \u0411\u0443\u0434\u0435\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pixel-code (\u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e) \u0438\u043d\u0434\u0435\u043a\u0441\u0430.<br \/>  \u0427\u0442\u043e \u0437\u0430 pixel-code \u0438\u043d\u0434\u0435\u043a\u0441? \u042d\u0442\u043e \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0438\u0441\u0441\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0437\u0430\u043c\u0435\u0442\u0430\u044e\u0449\u0435\u0439 \u043a\u0440\u0438\u0432\u043e\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u0435\u0442\u043e\u0447\u0435\u0447\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 2-\u043c\u0435\u0440\u043d\u043e\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435. \u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u043c \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435:  <\/p>\n<ul>\n<li>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0434\u0435\u043b\u044f\u0442 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430 \u0431\u043b\u043e\u043a\u0438<\/li>\n<li>\u0412\u0441\u0435 \u0431\u043b\u043e\u043a\u0438 \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f<\/li>\n<li>\u041a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0431\u043b\u043e\u043a\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d<\/li>\n<li>\u041f\u0440\u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u044d\u043a\u0441\u0442\u0435\u043d\u0442 \u0440\u0430\u0441\u0449\u0435\u043f\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u043b\u043e\u043a\u0438 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0438\u043b\u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438\u0437 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (B-\u0434\u0435\u0440\u0435\u0432\u043e) \u0434\u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442.<\/li>\n<\/ul>\n<p>  \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f:  <\/p>\n<ul>\n<li>\u0421\u0442\u0430\u0440\u044b\u0439 \u0434\u043e\u0431\u0440\u044b\u0439 Igloo (\u0438\u043b\u0438 \u0434\u0440\u0443\u0433\u0430\u044f <a href=\"http:\/\/habrahabr.ru\/post\/186564\/\">\u0437\u0430\u043c\u0435\u0442\u0430\u044e\u0449\u0430\u044f \u043a\u0440\u0438\u0432\u0430\u044f<\/a>) \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438. \u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0435\u0442\u043a\u043e\u0439, \u0448\u0430\u0433\u043e\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0439 (\u043e\u0431\u044b\u0447\u043d\u043e) \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u042f\u0447\u0435\u0439\u043a\u0438 \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a X\u2026xY\u2026yZ\u2026z\u2026 \u0442.\u0435. \u0441\u043a\u043b\u0435\u0438\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u044f\u0447\u0435\u0435\u043a \u043f\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044f\u043c.<\/li>\n<li><a href=\"http:\/\/healpix.jpl.nasa.gov\/\">HEALPix<\/a>. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043e\u0442 Hierarchical Equal Area iso-Latitude Pixelisation. \u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u0441\u0444\u0435\u0440\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u0441 \u0446\u0435\u043b\u044c\u044e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430 Igloo \u2013 \u0440\u0430\u0437\u043d\u043e\u0439 \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u043f\u043e\u0434 \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438 \u043d\u0430 \u0440\u0430\u0437\u043d\u043e\u0439 \u0448\u0438\u0440\u043e\u0442\u0435. \u0421\u0444\u0435\u0440\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 12 \u0440\u0430\u0432\u043d\u044b\u0445 \u043f\u043e \u043f\u043b\u043e\u0449\u0430\u0434\u0438 \u0443\u0447\u0430\u0441\u0442\u043a\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u043c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0435\u043b\u0438\u0442\u0441\u044f \u043d\u0430 4 \u043f\u043e\u0434 \u2014 \u0443\u0447\u0430\u0441\u0442\u043a\u0430. \u0418\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u0435\u0442\u043e\u0434\u0443 \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u0430 \u0432 \u0448\u0430\u043f\u043a\u0443 \u0441\u0442\u0430\u0442\u044c\u0438<\/li>\n<li>Hierarchical Triangular Mesh (<a href=\"http:\/\/taltos.pha.jhu.edu\/htm\">HTM<\/a>).\u042d\u0442\u043e \u0441\u0445\u0435\u043c\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f \u043a \u0441\u0444\u0435\u0440\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 8 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u044b\u0445, \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 4 \u043f\u043e\u0434 \u2014 \u0442\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0430 <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/4d0\/d5d\/aff\/4d0d5daffab7938ac89db3156bc025c5.png\" alt=\"image\"\/><\/li>\n<li>\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0441\u0445\u0435\u043c \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f GRID. \u041f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043c\u043d\u043e\u0433\u043e\u043c\u0435\u0440\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c:<br \/> \n<ol>\n<li>\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0440\u0435\u0436\u0435\u0442\u0441\u044f \u043d\u0430 \u0447\u0430\u0441\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0448\u0435\u0442\u043a\u0438<\/li>\n<li>\u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u044f\u0447\u0435\u0439\u043a\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0443\u043c\u0435\u0440\u0443\u044e\u0442\u0441\u044f<\/li>\n<li>\u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0435 \u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443, \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 <\/li>\n<li>\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043d\u043e\u043c\u0435\u0440\u0430 \u044f\u0447\u0435\u0435\u043a \u043f\u043e \u043e\u0441\u044f\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u201c\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\u201d, \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435\u0432\u0435\u043b\u0438\u043a\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438<\/li>\n<li>\u0435\u0441\u043b\u0438 \u201c\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u201d \u0432\u0435\u043b\u0438\u043a\u0430, \u043e\u043d\u0430 \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0438 a la \u0434\u0435\u0440\u0435\u0432\u043e<\/li>\n<li>\u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438, \u0440\u0435\u0448\u0435\u0442\u043a\u0430 \u043c\u043e\u0436\u0435\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u044f\u0447\u0435\u0439\u043a\u0438 \u0438\u043b\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0440\u0430\u0441\u0449\u0435\u043f\u043b\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438, \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0441\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f<\/li>\n<\/ol>\n<p>3-\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 GRID, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 Z-order \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f DB2, 4-\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 GRID, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043a\u0440\u0438\u0432\u043e\u0439 \u0413\u0438\u043b\u044c\u0431\u0435\u0440\u0442\u0430 <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/bb964712.aspx\">\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d<\/a> \u0432 MS SQLServer 2008   <\/li>\n<\/ul>\n<p>  \u041f\u0440\u0438 \u0432\u0441\u0435\u0445 \u043c\u0438\u043d\u0443\u0441\u0430\u0445, \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0430\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443, \u0443 \u0431\u043b\u043e\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0435\u0441\u0442\u044c \u0438 \u043f\u043b\u044e\u0441\u044b: \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438 \u0432\u0441\u0435\u044f\u0434\u043d\u043e\u0441\u0442\u044c. \u0412 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u043e \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439. \u041c\u044b \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044e \u0432 \u0447\u0438\u0441\u043b\u0430 \u043f\u0440\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u0438 \u0442\u0435\u043c \u0436\u0435 \u0441\u0430\u043c\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435.<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Igloo \u0438\u0437-\u0437\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b: \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0432 \u043d\u043e\u043c\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u0448\u0435\u0432\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 PL\/SQL. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTM \u0438\u043b\u0438 \u043a\u0440\u0438\u0432\u0443\u044e \u0413\u0438\u043b\u044c\u0431\u0435\u0440\u0442\u0430 \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0421-\u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0431\u044b\u043b\u043e \u0431\u044b \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  <b>\u0422\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445<\/b><br \/>  \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u043e\u0447\u043a\u0438? \u041a\u0430\u043a \u0443\u0436\u0435 \u043e\u0442\u043c\u0435\u0447\u0430\u043b\u043e\u0441\u044c, \u0411\u043b\u043e\u0447\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u0442\u043e\u0447\u0435\u043a \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u0435\u043d, \u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u0435\u0433\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0438\u0441\u0430\u0442\u044c, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u044f \u0442\u0435\u043c\u044b.<\/p>\n<p>  <b>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435<\/b><br \/>  \u041d\u0435 \u043c\u0443\u0434\u0440\u0441\u0442\u0432\u0443\u044f \u043b\u0443\u043a\u0430\u0432\u043e,   <\/p>\n<ul>\n<li>\u043f\u043e\u0441\u0430\u0434\u0438\u043c \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0443\u0437\u043b\u044b \u0440\u0435\u0448\u0435\u0442\u043a\u0438 4000\u04254000 \u0441 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0432 (0,0) \u0438 \u0448\u0430\u0433\u043e\u043c 1.<\/li>\n<li>\u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043a\u0432\u0430\u0434\u0440\u0430\u0442 \u0438\u0437 16 \u043c\u043b\u043d \u0442\u043e\u0447\u0435\u043a.<\/li>\n<li>\u044f\u0447\u0435\u0439\u043a\u0443 \u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043f\u0440\u0438\u043c\u0435\u043c \u0437\u0430 10\u042510,<\/li>\n<li>\u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0443 \u043d\u0430\u0441 400\u0425400 \u044f\u0447\u0435\u0435\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e 100 \u0442\u043e\u0447\u0435\u043a. <\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0435 \u0432\u0430\u0436\u043d\u043e, \u043a\u0430\u043a \u0442\u043e\u0447\u043a\u0438 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0447\u0435\u0439\u043a\u0438, \u0430 \u043d\u0430\u043c \u0442\u0430\u043a\u0430\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\n<p>  \u0414\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 <a href=\"http:\/\/gnuwin32.sourceforge.net\/packages\/gawk.htm\">AWK<\/a>(\u043f\u0443\u0441\u0442\u044c, \u0431\u0443\u0434\u0435\u0442 &#8216;data.awk&#8217;):  <\/p>\n<pre><code class=\"php\">BEGIN {   cnt = 1; sz = 4000;   # Set the checkpoint interval to 100 hours -- enough to complete most of experiments.   print&quot;checkpoint_interval (6000);&quot;;    print&quot;SET AUTOCOMMIT MANUAL;&quot;;   for (i=0; i &lt; sz; i++) {    for (j=0; j &lt; sz; j++) {     print &quot;insert into \\&quot;xxx\\&quot;.\\&quot;YYY\\&quot;.\\&quot;_POINTS\\&quot;&quot;;     print &quot;  (\\&quot;oid_\\&quot;,\\&quot;x_\\&quot;, \\&quot;y_\\&quot;) values (&quot;cnt&quot;,&quot;i&quot;,&quot;j&quot;);&quot;;     cnt++;    }     print&quot;commit work;&quot;   }   print&quot;checkpoint;&quot;   print&quot;checkpoint_interval (60);&quot;;    exit; } <\/code><\/pre>\n<p>  <b>\u0421\u0435\u0440\u0432\u0435\u0440<\/b>  <\/p>\n<ul>\n<li>\u0412\u043e\u0437\u044c\u043c\u0435\u043c \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 <a href=\"http:\/\/virtuoso.openlinksw.com\/dataspace\/doc\/dav\/wiki\/Main\/VOSDownload\">\u0431\u0438\u043b\u0434<\/a> \u0441 \u0441\u0430\u0439\u0442\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.<br \/>  \u0410\u0432\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e 7.0.0 (x86_64), \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e.<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c, \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, <a href=\"http:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=14632\">Microsoft Visual C++ 2010 Redistributable Package (x64)<\/a><\/li>\n<li>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043e\u0432 \u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0442\u0443\u0434\u0430 libeay32.dll, ssleay32.dll, isql.exe, virtuoso-t.exe \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u043d\u043e\u0439 &#8216;bin&#8217; \u0438 virtuoso.ini \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u043d\u043e\u0439 &#8216;database &#8216;<\/li>\n<li>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e &#8216;start virtuoso-t.exe +foreground&#8217;, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0444\u0430\u0439\u0435\u0440\u0432\u043e\u043b\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0440\u0442\u044b<\/li>\n<li>\u0422\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 &#8216;isql localhost:1111 dba dba&#8217;. \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0432\u0432\u043e\u0434\u0438\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440. &#8216;select 1;&#8217; \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u0436\u0438\u0432.<\/li>\n<\/ul>\n<p>  <b>\u0421\u0445\u0435\u043c\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/b><br \/>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0442\u043e\u0447\u0435\u043a, \u043d\u0438\u0447\u0435\u0433\u043e \u043b\u0438\u0448\u043d\u0435\u0433\u043e:  <\/p>\n<pre><code class=\"sql\">create user &quot;YYY&quot;; create table &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS&quot; ( \t&quot;oid_&quot; integer, \t&quot;x_&quot; double precision, \t&quot;y_&quot; double precision, \tprimary key (&quot;oid_&quot;)  ); <\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441:  <\/p>\n<pre><code class=\"sql\">create table &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS_spx&quot; ( \t&quot;node_&quot; integer,   \t&quot;oid_&quot; integer references &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS&quot;,  \tprimary key (&quot;node_&quot;, &quot;oid_&quot;)  ); <\/code><\/pre>\n<p> \u0433\u0434\u0435 node_ \u2014 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u044f\u0447\u0435\u0439\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u041e\u0431\u0440\u0430\u0442\u0438\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e, \u0445\u043e\u0442\u044f, \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u043e\u0431\u0430 \u043f\u043e\u043b\u044f \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u043c \u043a\u043b\u044e\u0447\u0435 \u0438, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u044b \u0432 \u0434\u0435\u0440\u0435\u0432\u043e.<\/p>\n<p>  \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u0430:  <\/p>\n<pre><code class=\"sql\">registry_set ('__spx_startx', '0'); registry_set ('__spx_starty', '0'); registry_set ('__spx_nx', '4000'); registry_set ('__spx_ny', '4000'); registry_set ('__spx_stepx', '10'); registry_set ('__spx_stepy', '10'); <\/code><\/pre>\n<p>  \u0421\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f registry_set \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u044b\u0435 \u043f\u0430\u0440\u044b \u0438\u043c\u044f\/\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0440\u0435\u0435\u0441\u0442\u0440 \u2014 \u044d\u0442\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438\u0445 \u0432\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043c\u0438.<\/p>\n<p>  \u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<pre><code class=\"sql\">create trigger &quot;xxx_YYY__POINTS_insert_trigger&quot; after insert  \ton &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS&quot;  \treferencing new as n {   declare nx, ny integer;   nx := atoi (registry_get ('__spx_nx'));   declare startx, starty double precision;   startx := atof (registry_get ('__spx_startx'));   starty := atof (registry_get ('__spx_starty'));   declare stepx, stepy double precision;   stepx := atof (registry_get ('__spx_stepx'));   stepy := atof (registry_get ('__spx_stepy'));   declare sx, sy integer;   sx := floor ((n.x_ - startx)\/stepx);   sy := floor ((n.y_ - starty)\/stepy);   declare ixf integer;   ixf := (nx \/ stepx) * sy + sx;   insert into &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS_spx&quot; (&quot;oid_&quot;,&quot;node_&quot;)      values (n.oid_,ixf); }; <\/code><\/pre>\n<p>  \u041a\u043b\u0430\u0434\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, &#8216;sch.sql&#8217; \u0438 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c<\/p>\n<pre><code class=\"bash\">isql.exe localhost:1111 dba dba &lt;sch.sql <\/code><\/pre>\n<p>  <b>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/b><br \/>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u0445\u0435\u043c\u0430 \u0433\u043e\u0442\u043e\u0432\u0430, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435.  <\/p>\n<pre><code class=\"bash\">gawk -f data.awk | isql.exe localhost:1111 dba dba &gt;log 2&gt;errlog <\/code><\/pre>\n<p>\u0417\u0430\u043d\u044f\u043b\u043e \u044d\u0442\u043e \u0443 \u0430\u0432\u0442\u043e\u0440\u0430 45 \u043c\u0438\u043d\u0443\u0442 (~6000 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443) \u043d\u0430 Intel i7-3612QM 2.1GHz c 8Gb \u043f\u0430\u043c\u044f\u0442\u0438.<br \/>  \u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u0430\u043c\u044f\u0442\u0438, \u0437\u0430\u043d\u044f\u0442\u044b\u0439 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c, \u0431\u044b\u043b \u043e\u043a\u043e\u043b\u043e 1 Gb, \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0430\u0437\u044b \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u2014 540Mb, \u0442.\u0435. ~34 \u0431\u0430\u0439\u0442 \u043d\u0430 \u0442\u043e\u0447\u043a\u0443 \u0438 \u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441.<br \/>  \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d, \u0432\u0432\u043e\u0434\u0438\u043c \u0432 isql  <\/p>\n<pre><code class=\"sql\">select count(*) from  &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS&quot;; select count(*) from  &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS_spx&quot;; <\/code><\/pre>\n<p>\u041e\u0431\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0434\u0430\u0442\u044c 16 000 000.<\/p>\n<p>  \u041a\u0430\u043a \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0435 <a href=\"http:\/\/www.star.le.ac.uk\/~cgp\/P2-22.pdf\">\u0437\u0434\u0435\u0441\u044c<\/a>:<br \/>  <img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/2a1\/669\/d6b\/2a1669d6bf0a5ba0914bcadaf08c0aee.png\" alt=\"image\"\/>.<br \/>  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043e\u043d\u0438 \u043d\u0430 PostgreSQL(Linux), 2.2GHz Xeon.<br \/>  \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b 9 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0438\u0441\u043a\u0443 \u0437\u0430 \u0438\u0441\u0442\u0435\u043a\u0448\u0438\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0441\u044f \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u0443\u0436 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e.<br \/>  \u0410 \u0432\u043e\u0442 <a href=\"http:\/\/www.adass.org\/adass\/proceedings\/adass00\/P2-07\/\">\u0437\u0434\u0435\u0441\u044c<\/a> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0447\u0435\u0440\u043f\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0438 \u0441\u043e\u0438\u0437\u043c\u0435\u0440\u0438\u043c\u043e \u0441 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0437\u0430\u043b\u0438\u0432\u043a\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0445. <br \/>  \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0437\u0430\u043b\u0438\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 (\u043f\u043e \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c) \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u043d\u0435\u0436\u0435\u043b\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u043d\u0430 \u043b\u0435\u0442\u0443. \u041d\u043e \u043d\u0430\u0441 \u0431\u043e\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0446\u0438\u044f \u043d\u0430 \u043b\u0435\u0442\u0443 \u0442.\u043a. \u0434\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0421\u0423\u0411\u0414, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430.<\/p>\n<p>  \u0418 \u0435\u0449\u0435, \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0435 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u043b\u0438\u0432\u043a\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u0435\u043d \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0445 \u0437\u0430\u043b\u0438\u0432\u043a\u0438.<br \/>  \u0418 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438 \u0432 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0439 \u0432\u044b\u0448\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043f\u043e\u0434\u0430\u0447\u0438 \u0442\u043e\u0447\u0435\u043a \u0431\u044b\u043b \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c (\u0438\u043b\u0438 \u0431\u043b\u0438\u0437\u043a\u0438\u043c \u043a \u043d\u0435\u043c\u0443) \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0430\u0442\u044c, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u043f\u0430\u0434\u0435\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u0434\u0440\u0430\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0421\u0423\u0411\u0414.<br \/>  \u0415\u0441\u043b\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043e\u0442\u0441\u0442\u043e\u0439\u043d\u0438\u043a\u0435, \u043f\u043e \u043c\u0435\u0440\u0435 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u0446\u0438\u044f\u043c\u0438.<\/p>\n<p>  <b>\u041d\u0430\u043b\u0430\u0436\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u0438\u0441\u043a<\/b><br \/>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c\u044e Virtuoso, \u043a\u0430\u043a \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u044b\u0435 view.  <\/p>\n<pre><code class=\"sql\">create procedure &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS_spx_enum_items_in_box&quot; ( \tin minx double precision,  \tin miny double precision,  \tin maxx double precision,  \tin maxy double precision) {   declare nx, ny integer;   nx := atoi (registry_get ('__spx_nx'));   ny := atoi (registry_get ('__spx_ny'));    declare startx, starty double precision;   startx := atof (registry_get ('__spx_startx'));   starty := atof (registry_get ('__spx_starty'));    declare stepx, stepy double precision;   stepx := atof (registry_get ('__spx_stepx'));   stepy := atof (registry_get ('__spx_stepy'));    declare sx, sy, fx, fy integer;   sx := floor ((minx - startx)\/stepx);   fx := floor (1 + (maxx - startx - 1)\/stepx);   sy := floor ((miny - starty)\/stepy);   fy := floor (1 + (maxy - starty - 1)\/stepy);    declare mulx, muly integer;   mulx := nx \/ stepx;   muly := ny \/ stepy;    declare res any;   res := dict_new ();   declare cnt integer;   for (declare iy integer, iy := sy; iy &lt; fy; iy := iy + 1)     {     declare ixf, ixt integer;     ixf := mulx * iy + sx;     ixt := mulx * iy + fx;     for select &quot;node_&quot;, &quot;oid_&quot; from &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS_spx&quot;            where &quot;node_&quot; &gt;= ixf and &quot;node_&quot; &lt; ixt do       {       dict_put (res, &quot;oid_&quot;, 0);       cnt := cnt + 1;     }   }   declare arr any;   arr := dict_list_keys (res, 1);   gvector_digit_sort (arr, 1, 0, 1);    result_names(sx);   foreach (integer oid in arr) do     {     result (oid);   } }; create procedure view &quot;xxx&quot;.&quot;YYY&quot;.&quot;v_POINTS_spx_enum_items_in_box&quot; as &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS_spx_enum_items_in_box&quot; (minx, miny, maxx, maxy) (&quot;oid&quot; integer);  <\/code><\/pre>\n<p>\u0412 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u043e\u043d\u0430 \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u0442, \u0432 \u043a\u0430\u043a\u0438\u0435 \u044f\u0447\u0435\u0439\u043a\u0438 \u0431\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u044d\u043a\u0441\u0442\u0435\u043d\u0442 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u044d\u0442\u0438\u0445 \u044f\u0447\u0435\u0435\u043a \u0434\u0435\u043b\u0430\u0435\u0442 \u043f\u043e\u0434-\u0437\u0430\u043f\u0440\u043e\u0441, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0432 \u0445\u044d\u0448-\u043c\u0430\u043f\u0443, \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0438 \u043e\u0442\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u0430\u043a \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.<br \/>  \u041a\u0430\u043a \u0436\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"sql\">select count(*), avg(x.x_),  avg(x.y_)  from   &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS&quot; as x, &quot;xxx&quot;.&quot;YYY&quot;.&quot;v_POINTS_spx_enum_items_in_box&quot; as a   where a.minx = 91. and a.miny = 228. and a.maxx = 139. and a.maxy = 295.    and x.&quot;oid_&quot; = a.oid    and x.x_ &gt;= 91. and x.x_ &lt; 139. and x.y_ &gt;= 228. and x.y_ &lt; 295.; <\/code><\/pre>\n<p> \u0417\u0434\u0435\u0441\u044c \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f join \u043c\u0435\u0436\u0434\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0442\u043e\u0447\u0435\u043a \u0438 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u0435\u043a\u043e\u0440\u0434\u0441\u0435\u0442\u043e\u043c \u0438\u0437 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0433\u043e view \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c. \u0417\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043d\u043e\u0435 view \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u043e\u043b\u044c \u0433\u0440\u0443\u0431\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u044f\u0447\u0435\u0439\u043a\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043c\u044b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0438 \u0442\u043e\u043d\u043a\u0438\u0439 \u0444\u0438\u043b\u044c\u0442\u0440.<br \/>  \u041e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:   <\/p>\n<ul>\n<li>\u0427\u0438\u0441\u043b\u043e: (139 \u2014 91) * (295 \u2014 228) = 3216<\/li>\n<li>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e X: (139 + 91 \u2014 1) \/ 2 = 114.5 (-1 \u0442.\u043a. \u043f\u0440\u0430\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0430)<\/li>\n<li>\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e Y: (295 + 228 \u2014 1) \/ 2 = 261 (&#8230;)<\/li>\n<\/ul>\n<p> \u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u043e\u0442 \u043e\u0434\u043d\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043c\u044b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a.<\/p>\n<p>  <b>Benchmark<\/b><br \/>  \u0414\u043b\u044f \u043f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043d\u0430 AWK:  <\/p>\n<pre><code class=\"php\">BEGIN {   srand();   for (i=0; i &lt; 100; i++) {    for (j=0; j &lt; 100; j++)  { \tstartx = int(rand() * 3900); \tfinx = int(startx + rand() * 100); \tstarty = int(rand() * 3900); \tfiny = int(starty + rand() * 100); \tprint &quot;select count(*), avg(x.x_),  avg(x.y_) from&quot;; \tprint &quot;\\&quot;xxx\\&quot;.\\&quot;YYY\\&quot;.\\&quot;_POINTS\\&quot; as x, &quot; \tprint &quot;\\&quot;xxx\\&quot;.\\&quot;YYY\\&quot;.\\&quot;v_POINTS_spx_enum_items_in_box\\&quot; as a&quot; \tprint &quot;where a.minx = &quot;startx&quot;. and a.miny = &quot;starty&quot;.&quot; \tprint &quot; and a.maxx = &quot;finx&quot;. and a.maxy = &quot;finy&quot;. and&quot; \tprint &quot;x.\\&quot;oid_\\&quot; = a.oid and x.x_ &gt;= &quot;startx&quot;. and x.x_ &lt; &quot;finx&quot;.&quot; \tprint &quot; and x.y_ &gt;= &quot;starty&quot;. and x.y_ &lt; &quot;finy&quot;.;&quot;    }   }   exit; } <\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 10 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 (0&#8230;100). \u041f\u0440\u0438\u0433\u043e\u0442\u043e\u0432\u0438\u043c 4 \u0442\u0430\u043a\u0438\u0445 \u043d\u0430\u0431\u043e\u0440\u0430 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0442\u0440\u0438 \u0441\u0435\u0440\u0438\u0438 \u0442\u0435\u0441\u0442\u043e\u0432 \u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043e\u0434\u0438\u043d isql \u0441 \u0442\u0435\u0441\u0442\u0430\u043c\u0438, 2 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0438 4 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e. \u041d\u0430 \u0432\u043e\u0441\u044c\u043c\u0438\u044f\u0434\u0435\u0440\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u0442\u044c \u0441\u043c\u044b\u0441\u043b\u0430 \u043d\u0435\u0442. \u0417\u0430\u043c\u0435\u0440\u0438\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.  <\/p>\n<ul>\n<li>1 \u043f\u043e\u0442\u043e\u043a: 151 sec = ~66 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043d\u0430 \u043f\u043e\u0442\u043e\u043a<\/li>\n<li>2 \u043f\u043e\u0442\u043e\u043a\u0430: 159 sec = ~63\u2026 <\/li>\n<li>4 \u043f\u043e\u0442\u043e\u043a\u0430: 182 sec = ~55\u2026 <\/li>\n<\/ul>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u044d\u0442\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u0441 \u043e\u043d\u044b\u043c\u0438, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u043f\u0438\u043d\u043d\u043e\u043c\u043e\u0437\u0433\u043e\u0432\u044b\u043c \u043f\u0443\u0442\u0435\u043c \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0434\u0432\u0443\u0445 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u2014 \u043f\u043e x_&#038;y_. \u041f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043f\u043e \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044f\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u0442\u0435\u0441\u0442\u043e\u0432 \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u0442\u0438\u043f\u0430   <\/p>\n<pre><code class=\"sql\">select count(*), avg(x.x_),  avg(x.y_)  from   &quot;xxx&quot;.&quot;YYY&quot;.&quot;_POINTS&quot; as x   where x.x_ &gt;= 91. and x.x_ &lt; 139. and x.y_ &gt;= 228. and x.y_ &lt; 295.; <\/code><\/pre>\n<p> \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0430\u043a\u043e\u0432: \u0441\u0435\u0440\u0438\u044f \u0438\u0437 10 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0430 417 \u0441\u0435\u043a\u0443\u043d\u0434, \u0438\u043c\u0435\u0435\u043c 24 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p>  <b>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/b><br \/>  \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432, \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445, \u043a\u0430\u043a \u0443\u0436\u0435 \u043e\u0442\u043c\u0435\u0447\u0430\u043b\u043e\u0441\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443. \u0415\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044d\u0442\u043e \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0432\u043e\u043e\u0431\u0449\u0435. <\/p>\n<p>  \u041d\u043e \u0434\u0430\u0436\u0435 \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043a\u043e\u043b\u0435\u043d\u043a\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 \u0434\u0430\u0435\u0442 \u0441\u043d\u043e\u0441\u043d\u0443\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0440\u0430\u0437 \u0443\u0436 \u043c\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043d\u0430 \u044d\u0442\u043e\u0439 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0431\u0435\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043d\u043e\u0433\u043e-\u0442\u0430\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b, \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0448\u0442\u0430\u0442\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e. \u041d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437.    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/196682\/\"> http:\/\/habrahabr.ru\/post\/196682\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habrastorage.org\/storage3\/b37\/8b6\/2d8\/b378b62d8c490b812df3236d0626c1bc.png\" alt=\"image\"\/><br \/>  \u041c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u0422\u0435\u0445\u0430\u0441\u0441\u043a\u0430\u044f \u0440\u0435\u0437\u043d\u044f \u0431\u0435\u043d\u0437\u043e\u043f\u0438\u043b\u043e\u0439\u00bb. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043c\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u043a \u0421\u0423\u0411\u0414, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0433\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0431\u044b\u043b\u043e.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-196682","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/196682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=196682"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/196682\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=196682"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=196682"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=196682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}