Календарь на Апрель 2024 года: calendar2008.ru/2024/aprel/
Навигация
Главная »  Sql 

1 [ 2 ] 3 4

  Использование хэш-ключей вместо строковых индексов
Источник: realcodingМоисеенко С.И. Использование хэш-ключей вместо строковых индексов Вашему приложению может потребоваться индекс на основе длинной строки символов или, что еще хуже, конкатенации двух строк или строки и одного-двух целых чисел. Для небольшой таблицы вы можете не заметить какого-либо отрицательного влияния такого индекса. Но если предположить, что рассматриваемая таблица содержит 50 миллионов записей? Теперь вы не сможете не заметить воздействия, которое скажется как на требованиях к хранению, так и к производительности поиска. Однако вам не обязательно так поступать. Есть очень простая альтернатива, использующая то, что еще известно под названием хэш-блоков или хэш-ключей. Что такое хэширование? Говоря коротко, хэширование - это целочисленный результат алгоритма (известного как хэш-функция), применяемого к заданной строке.

  Использование хэш-ключей в базах данных
Источник: realcoding  Введение Эта статья появилась как ответ на предложение Артура Фуллера (Arthur Fuller) использовать хэш-функции в базах данных. Что предлагает А.Фуллер? "Вашему приложению может потребоваться индекс на основе длинной строки символов или, что еще хуже, конкатенации двух строк или строки и одного-двух целых чисел. Для небольшой таблицы вы можете не заметить какого-либо отрицательного влияния такого индекса. Но если предположить, что рассматриваемая таблица содержит 50 миллионов записей? Теперь вы не сможете не заметить воздействия, которое скажется как на требованиях к хранению, так и к производительности поиска. Однако вам не обязательно так поступать. Есть очень простая альтернатива, использующая то, что еще известно под названием хэш-блоков или хэш-ключей." Рассмотрим это предложение: Что такое хэш-функция ? Хэш-функцией называется односторонняя функция, предназначенная для получения дайджеста или "отпечатков пальцев" файла, сообщения или некоторого блока данных. Хэш-код создается функцией Н: h = H (M) Где М является сообщением произвольной длины и h является хэш-кодом фиксированной длины. Хэш-функция Н, которая используется для аутентификации сообщений, должна обладать следующими свойствами: Хэш-функция Н должна применяться к блоку данных любой длины.

  Способы подсчета количества записей в каждой из таблиц базы данных
Источник: realcoding Способы подсчета количества записей в каждой из таблиц базы данных В этой стате рассматриваются несколько способов, с помощью которых можно подсчитать количество записей в таблицах базы данных MS SQL Server Способ 1: Поскольку приведенный ниже sql-код для подсчета количества записей использует таблицу sysindexes, его результат зависит от того, была ли обновлена статистика. T-SQL: select substring(o.name, 1, 30) Table_Name ,i.rows Number_of_Rowsfrom sysobjects oinner join sysindexes ion (o.id = i.id)where o.xtype = 'u'and i.indid < 2order by o.name В приведенном примере xtype = 'u' используется для выбора объектов типа "таблица", а использование indid < 2 гарантирует выборку всех таблиц (как имеющих, так и не имеющих индексы). Способ 2: Следующий sql-код также может быть использован для определения количества записей в таблицах базы данных. Для подсчета числа строк этот sql-код использует функцию агрегации. Обрамление кавычками выбранного названия таблицы необходимо для обработки пробелов в названии (если такие названия существуют). T-SQL: SET NOCOUNT ON   DECLARE tables_cursor CURSOR      FOR      SELECT name FROM sysobjects WHERE type = 'U' order by 1   OPEN tables_cursor   DECLARE @tablename varchar(50)    FETCH NEXT FROM tables_cursor INTO @tablename    WHILE (@@fetch_status -1)   BEGIN   select @tablename = quotename(@tablename, '[]')      DECLARE @CMD VARCHAR(100)      PRINT @TABLENAME      SELECT @CMD = ' select count(*) from '+@tablename+' '   EXEC (@CMD)       FETCH NEXT FROM tables_cursor INTO @tablename   END   DEALLOCATE tables_cursor   SET NOCOUNT OFF Способ 3: Для решения поставленной задачи можно также использовать недокументированную хранимую процедуру sp_Msforeachtable. Sp_Msforeachtable сканирует все таблицы в определенной базе данных и выполняет указанную sql-команду (ы) для каждой из таблиц.

  Приведение к типам в Yii::app()->request
Источник: habrahabranonimizer_me Всем привет! Хочу поделиться с вами небольшим решением проблемы, с которой столкнулся при переносе части данных проекта в mongodb.Изначально у нас использовалась только Mysql и все параметры приходящие от клиента вполне себе позволяли получать данные из базы без каких-либо проблем. А суть в том, что для mysql нет разницы [select * from data where id = 1] или [select * from data where id ='1'].Но mongodb типы данных различает, по этому нельзя найти запись используя условие id == '1' если id в mongodb является числом. Для того, чтобы не усложнять и не увеличивать количество кода за счет добавления (int) для приведения типа было выбрано седующее решение - создание собственного request менеджера на основе стандартного CHttpRequest.Получился следующий класс.

  Скрипт для сравнения двух БД Oracle
Источник: habrahabrodiusage Процесс выката новых версий  ETL  на продуктив всегда процесс волнующий. Редко когда среда разработки полностью соответствует среде эксплуатации, в моем предыдущем проекте различались в том числе ОС и железо, на которых велась разработка и эксплуатация ХД. Хорошо хоть база данных использовалась одна и та же - Oracle. Для того, чтобы убрать максимальное количество различий между настройками и содержимым продуктивной и разработческой БД мой коллега подготовил скрипт, собирающий, и, что очень важно, правильно форматирующий вывод в файл, скрипт, позволяющий сравнивать две БД. После такого сравнения и унификации многие, зачастую неожиданные, проблемы при деплое должны будут найтись немного раньше, на этапе тестирования, т.е. при деплое с ДЕВа на СИТ. А определенное количество устаревших маппингов  OWB  или таблиц можно будет удалить с ПРОД системы.

  CA Technologies обновила средства моделирования данных ERwin.
Основным направлением в развитии этой серии продуктов стало обеспечение коллективной работы над формализацией моделей для данных в локальных хранилищах и в облаках. В частности, предлагается поддержка облачной СУБД SQL Azure, а новый web-портал поможет всем заинтересованным управленцам визуализировать любые информационные активы по всем направлениям деятельности предприятий. По словам представителей CA Technologies, новые продукты CA ERwin помогут заказчикам справиться с растущей сложностью данных и наладить обмен точной информацией в условиях жестких ограничений бюджета и постоянного ввода новых систем в IT-инсфраструктуру. Благодаря инструментам моделирования CA ERwin специалисты по техническим и коммерческим вопросам получат все преимущества централизованного, единого представления информации - это позволит им лучше понимать и использовать описания критических данных, применяя информацию, как стратегический актив. Модуль CA ERwin Data Modeler for SQL Azure - это новое решение в линейке CA ERwin, которое обеспечивает контроль и интеграцию облачных сред на базе Microsoft SQL Azure в общую среду предприятия. Используя привычные парадигмы моделирования, это решение формирует визуальное представление информационных активов и сложных взаимосвязей между ними. С таким подходом заказчики сохраняют полный контроль над архитектурой своих БД, несмотря на перенос баз данных в публичные, частные и гибридные облачные среды.

  Охраняя базы данных
Источник: CRNМарсия Сэвидж  В то время как компании сосредоточивают усилия на обеспечении безопасности ОС и сетевых устройств, эксперты по безопасности заявляют, что базам данных, наиболее важным местам, где хранится ценная информация, уделяется слишком мало внимания. «Для обеспечения безопасности фирмы вынуждены ограничивать доступ практически ко всем объектам ИС, а БД составляют их большую часть», - считает Крис Роланд, директор исследовательской группы X-Force компании Internet Security Systems (ISS). Он добавил, что последние кражи номеров кредитных карточек, в том числе из системы электронной торговли США, организованные хакерами из России, подтверждают необходимость обеспечить безопасность БД. Огромный объем важнейшей для компании информации - сведения о финансовой деятельности, технических средствах и клиентах хранится в легкодоступных БД, отмечает Рич Телджохан, менеджер по продукции компании ISS. Он считает, что в этих БД содержится информация, которой могут воспользоваться взломщики. Для них не составляет труда обойти средства защиты ОС и подсоединиться практически к любой СУБД. Злоумышленники также могут использовать имена пользователей и пароли доступа, назначаемые по умолчанию при поставках СУБД, если только они не были изменены.

  Делаем простые вещи сложными или безопасные скрипты
Источник: itbandАлександр Синицын При разработке приложений программистам частенько приходится писать SQL скрипты. С одной стороны, это хорошо. Программист специализируется на некоторой части функционала приложения, знает как устроена соответствующая часть базы данных, знает что ему нужно изменить. Он - именно тот человек, который может сделать изменения наиболее быстро. Даже если в компании есть специализированный отдел по базам данных, на то чтобы привлечь специалиста, объяснить что нужно и дождаться результата - уйдет значительно больше времени. С другой стороны, скрипты программистов часто оставляют желать лучшего. Для многих программистов SQL - дополнительный язык, они знают его хуже основного.

  Полезные системные представления Oracle
Источник: orahome На этой странице я храню список наиболее полезных системных представлений Oracle (v$, dba_ и т.д.).С систематизацией этих данных дела обстоят как-то не очень, поэтому мне удобнее сделать свою страницу, чтобы быстро найти нужное представление, когда это срочно надо.Если у Вас есть, чем дополнить этот список, пишите, делитесь своими знаниями.Как говорится: "чем больше отдаешь, тем больше получаешь". За основу я взял таблицу  Table 2-1. Partial list of database components and their related data dictionary views из книги  Oracle Essentials Oracle Database 11g FOURTH EDITION ; авторы Rick Greenwald, Robert Stackowiak, и Jonathan Stern; издательство O'REILLY.Думаю, разделение представлений по категориям и пояснения авторов не всегда удачны, со временем буду вносить свои коррективы. Component view Представление №1, показывает текущие значения ключевых параметров v$parameter Общая информация по инстанции v$database, v$version, v$instance Мониторинг использования Temp v$tempseg_usage Показывает, какая сессия какую ждет dba_waiters Объекты базы dba_objects, all_objects, user_objects Индексы dba_indexes, all_indexes, user_indexes Таблицы dba_tables, all_tables, user_tables Datafiles v$datafile, v$datafile_header, dba_data_files, dba_extents, user_extents Control files v$controlfile, v$parameter, v$controlfile_record_section Tablespaces user_free_space, dba_free_space, v$tempfile, dba_users, dba_ts_quotas Segments dba_segments, user_segments Extents dba_extents, user_extents Processes v$process, v$bgprocess, v$session Work area memory v$pgastat, v$sysstat Shared server v$queue, v$dispatcher, v$shared_server Connection pooling dba_cpool_info, v$cpool_stat, v$cpool_cc_stats Redo logs v$thread, v$log, v$logfile, v$log_history Undo v$undostat, v$rollstat, v$transaction Archiving status v$database, v$log, v$archived_log, v$archive_dest Database instance v$instance, v$system_parameter Memory structure v$sga, v$sgastat, v$sgainfo, v$sga_dynamic_components, v$sga_dynamic_free_memory, v$sga_resize_ops, v$sga_resize_current_ops, v$memory_target_advice, v$sga_target_advice, v$pga_target_advice Alerting dba_thresholds, dba_outstanding_alerts, dba_alert_history, v$alert_types, v$metric Performance monitoring v$lock, dba_lock, v$session_wait, v$sqlarea, v$latch Rman recovery v$recover_file User passwords v$pwfile_users.

  Использование хэш-ключей вместо строковых индексов в SQL Server
Источник: cyberguru Вашему приложению может потребоваться индекс на основе длинной строки символов или, что еще хуже, конкатенации двух строк или строки и одного-двух целых чисел. Для небольшой таблицы вы можете не заметить какого-либо отрицательного влияния такого индекса. Но если предположить, что рассматриваемая таблица содержит 50 миллионов записей? Теперь вы не сможете не заметить воздействия, которое скажется как на требованиях к хранению, так и к производительности поиска. Однако вам не обязательно так поступать. Есть очень простая альтернатива, использующая то, что еще известно под названием хэш-блоков или хэш-ключей. Что такое хэширование? Говоря коротко, хэширование - это целочисленный результат алгоритма (известного как хэш-функция), применяемого к заданной строке. Вы передаете в алгоритм строку, а на выходе получаете целое число.

  Oracle представляет Oracle Java Embedded Suite 7.0
Корпорация Oracle анонсировала Oracle Java Embedded Suite 7.0 - новое, объединенное в единый пакет предложение, которое облегчает создание приложений для широкого спектра встраиваемых систем, включая сетевые и медицинские устройства, домашние межсетевые шлюзы и маршрутизаторы, а также большие периферийные устройства, такие как многофункциональные принтеры. В снове программного пакета Oracle Java Embedded Suite 7.0 лежат платформа Oracle Java Platform, Standard Edition (Java SE) Embedded 7; СУБД Java DB; а также версии сервера приложений GlassFish for Embedded Suite и базовой платформы web-сервисов Jersey Web Services Framework, оптимизированные для встраиваемых архитектур с ограниченными ресурсами (по объему памяти, занимаемой программой и данными). С выпуском нового пакета ПО Oracle теперь имеет преинтегрированные web-сервисы, программный web-сервер, технологии базы данных и платформу разработки приложений, которые скомпонованы в виде единого комплексного решения, основанного на стандартах и оптимизированного для встраиваемых устройств. Ключевые функции и возможности Oracle Java Embedded Suite 7.0: Среда исполнения Java с ограниченными ресурсами, которая при этом сохраняет полное соответствие спецификации Java SE 7Поддержка безопасных и надежных хранилищ структурированных данных и современной реализации SQLПолное соответствие спецификации Java Servlet 3.0Безопасный хостинг web-сервисов, статического и динамического web-контента, а также доступ клиентов к web-сервисам RESTfulВарианты конфигурации для возможности осуществления оптимизации производительности и выполнения специфических настроек, связанных с особенностями развертывания Пакет Oracle Java Embedded Suite помогает клиентам добиться ускоренного вывода новых продуктов на рынок с помощью проверенных компонентов связующего программного обеспечения и силами собственного штата ИТ-специалистов в области Java. Программный пакет Oracle Java Embedded Suite 7.0 в настоящее время предлагается в редакциях для операционной системы Linux на системах с процессорными архитектурами x86 и ARM. Ознакомительную версию Oracle Java Embedded Suite 7.0 можно загрузить с web-сайта Oracle Technology Network (OTN). Продукты для встраиваемых систем Java Embedded от Oracle позволяют производителям устройств привлекать огромную экосистему Java, насчитывающую свыше 9 млн.

  Symantec и VMware развивают сотрудничество в области решений для виртуализации
Источник: Symantec Корпорация Symantec сообщила о новых решениях и технических интеграциях с продуктами компании VMware. Нововведения позволят обеспечить более высокий уровень защиты виртуализированных сред и пользоваться всеми преимуществами виртуализации без ущерба для безопасности. IT-администраторы ищут гибкие решения, которые позволяют ускорять процесс виртуализации серверов, что является первым шагом в переходе к облачной модели предоставления сервисов. Symantec может обеспечить этот переход с помощью передовых решений, которые тесно интегрированы с облачной инфраструктурой VMware. Для перевода критичных для бизнеса приложений из физической среды в виртуальную Symantec может: обеспечить улучшенный мониторинг и контроль виртуальных приложений; уменьшить влияние на производительность резервного копирования и восстановления данных при одновременном повышении эффективности защиты; обеспечить высокий уровень безопасности и совместимости виртуальной и облачной инфраструктур; улучшить производительность и доступность хранилищ данных. "Symantec и VMware, являясь лидерами в сферах безопасности и виртуализации, создают решения, позволяющие клиентам переходить к облачным системам с уверенностью. Тесное сотрудничество между Symantec и VMware помогают компаниям получать преимущества от использования виртуализации и облачных технологий, не жертвуя безопасностью", сказал Френсис ДеСуза (Francis deSouza), президент подразделения Enterprise Products and Services, Symantec.

  Терабайт - не предел. Восстановление данных сверхбольшого объема на примере испорченной базы Microsoft SQL Server
Источник: habrahabrmbozhenko При восстановлении данных из испорченных файлов обычно решающее значение имеет доскональное знание внутренней структуры хранения данных, алгоритмы обхода и исправления ошибок в структуре данных. Но иногда возникают дополнительные факторы, которые следует учитывать при обработке битых данных и их восстановлении. Один из таких факторов, о котором хотелось бы рассказать в данной статье - размер файла. Большинство испорченных файлов, встречающихся нам в работе, относятся к офисным (документы, таблицы, презентации) либо графическим форматам. Также их отличительной чертой является относительно небольшой размер (существенно меньше 10Мб). Связано это с двумя причинами. Во-первых, с огромным количеством пользователей, которые создают и используют файлы этих форматов.

  Дефрагментация индексов со сбором статистики MS SQL 2008 R2
Источник: habrahabrsp00n Одна из первых задач, которая возникает перед DBA после развертывания новой БД - это настройка планов по ее обслуживанию. Зачастую, в план обслуживания включается задача по дефрагментации индексов. Мне нравится, когда я знаю не только то, что дефрагментация выполнилась ночью с воскресенья на понедельник, но и то, как она прошла, сколько выполнялась, какие индексы были перестроены и в каком состоянии они остались после дефрагментации.  Для сбора такой статистики мною был написан небольшой скриптик, который собирает информацию о выполненной работе, а так же дает максимально подробное описаниео состоянии индексов до и после проделанной процедуры. Но начнем с простого, создадим таблицу для хранения этих самых данных (я создал отдельную БД, куда складываю таблицы, которыми пользуюсь во время обслуживания баз данных сервера): Столбец Тип Комментарий proc_id int Порядковый номер процедуры, для идентификации start_time datetime Начало выполнения запроса ALTER INDEX end_time datetime Завершение выполнения запроса ALTER INDEX database_id smallint Идентификатор БД object_id Int Идентификатор таблицы table_name varchar(50) Имя таблицы index_id Int Идентификатор индекса index_name varchar(50) Имя индекса avg_frag_percent_before float Процент фрагментации индекса перед выполнением ALTER INDEX fragment_count_before bigint Количество фрагментов до дефрагментации pages_count_before bigint Количество страниц индекса до дефргаментации fill_factor tinyint Уровень заполнения страниц индекса partition_num int Номер секции avg_frag_percent_after float Процент фрагментации индекса после выолнения ALTER INDEX fragment_count_after bigint Количество фрагментов после дефрагментации pages_count_after bigint Количество страниц индекса после дефргаментации action varchar(10) Выполняемое действиеВся процедура дефрагментации, будет брать данные из этой таблицы, а значит, надо ее заполнить:DECLARE @currentProcID INT --Порядковый номер процедуры дефрагментации --Выбираем последний номер, и просто добавляем единичку SELECT @currentProcID = ISNULL(MAX(proc_id), 0) + 1 FROM dba_tasks.dbo.index_defrag_statistic --И заполняем таблицу данными о состоянии индексов INSERT INTO dba_tasks.dbo.index_defrag_statistic ( proc_id, database_id, [object_id], table_name, index_id, index_name, avg_frag_percent_before, fragment_count_before, pages_count_before, fill_factor, partition_num) SELECT @currentProcID, dm.database_id, dm.[object_id], tbl.name, dm.index_id, idx.name, dm.avg_fragmentation_in_percent, dm.fragment_count, dm.page_count, idx.fill_factor, dm.partition_number FROM sys.dm_db_index_physical_stats(DB_ID(), null, null, null, null) dm INNER JOIN sys.tables tbl ON dm.object_id = tbl.object_id INNER JOIN sys.indexes idx ON dm.object_id = idx.object_id AND dm.index_id = idx.index_id WHERE page_count > 8 AND avg_fragmentation_in_percent > 10 AND dm.index_id > 0 Условия выборки:page_count > 8 - я считаю, что перестраивать индексы с малым количеством страниц не имеет смысла, т.к. лучше не станет, а время, затраченное на выполнение процедуры - очень ценно, особенно если база работает круглосуточно и постоянно находится под высокой нагрузкой. (После замечания unfilled поднял планку до 8 страниц)avg_fragmentation_in_percent > 10 - Тоже очень субъективная цифра, практически во всей документации предлагают не трогать индекс, если его фрагментация составляет 10 или менее процентов, с чем я согласен, если у вас дела обстоят по другому, меняем.dm.

  Различия глобального административного доступа и доступа к рабочему пространству в Rational Focal Point
Источник: IBM Обзор Rational Focal Point Продукт IBM Rational Focal Point помогает осуществлять сбор требований, анализ, установку приоритетов и планирование встреч в соответствии с деловыми приоритетами, позволяя принимать решения, дающие преимущества с точки зрения бизнеса для вашей организации. Он предлагает улучшенные возможности управления и контроля программного обеспечения и системных проектов, ИТ-услуг и продуктов, рассматривая их как объект инвестиций. IBM предлагает различные конфигурации для разных типов средств управления портфелем проектов, и вы можете сравнивать информацию, относящуюся к разным конкретным сценариям применения. Данный продукт позволяет согласовать цели бизнеса и разработки, отбирая информацию, важную для принятия решений, составления отчетов о состоянии и обзора портфеля продуктов. Кроме того, он автоматизирует тактические операции, такие как захват запроса. Это значит, что он может обеспечить согласованность данных и аудиторский учет для процессов оценки и утверждения. Что касается более специализированных возможностей, он предлагает планирование и отслеживание бизнес-операций, планирование ресурсов высокого уровня, возможность обеспечения управления с использованием оценочных ведомостей и контрольных пунктов и позволяет заказчикам, сообществам и заинтересованным лицам внутри компании оценивать достоинства функций или продуктов с целью отбора и установки приоритетов, используя для этого метод попарного сравнения.

  Oracle Critical Patch Update - октябрь 2012
Источник: all-oracle Доступен для загрузки октябрьский выпуск исправлений - Critical Patch Update (CPU). Oracle настоятельно рекомендует провести установку обновлений как можно быстрее. Всего устраняется 109 уязвимостей в множестве продуктов корпорации. Этот выпуск исправлений совпал с выходом новой версии Java , где было устранено 30 ошибок связанных с безопасностью. Исправления затрагивают следующие продукты корпорации: Database Oracle Database 11g Release 2, версии 11.2.0.2, 11.2.0.3 Oracle Database 11g Release 1, версия 11.1.0.7 Oracle Database 10g Release 2, версии 10.2.0.3, 10.2.0.4, 10.2.0.5 Fusion Middleware Oracle Fusion Middleware 11g Release 1, версия 11.1.1.6 Oracle Forms and Reports 11g, Release 2, версия 11.1.2.0 Oracle Forms and Reports 11g Release 1, версия 11.1.1.4 Oracle BI Publisher, версии 10.1.3.4.2, 11.1.1.5.0, 11.1.1.6.0, 11.1.1.6.2 Oracle Event Processing, версии 2.0, 11.1.1.4.0, 11.1.1.6.0 Oracle Identity Management 10g, версия 10.1.4 Oracle Imaging and Process Management, версия 10.1.3.6.0 Oracle JRockit версии, R28.2.4 и ранее, R27.7.3 и ранее Oracle Outside In Technology, версия 8.3.7 Oracle WebLogic Server, версии 9.2.4.0, 10.0.2.0, 10.3.5.0, 10.3.6.0, 12.1.1.0 Oracle WebCenter Sites, версии 6.1, 6.2, 6.3.x, 7, 7.0.1, 7.0.2, 7.0.3, 7.5, 7.6.1, 7.6.2, 11.1.1.6.0 E-Business Suite Oracle E-Business Suite Release 12, версии 12.0.6, 12.1.1, 12.1.2, 12.1.3 Oracle E-Business Suite Release 11i, версия 11.5.10.2 Supply Chain Oracle Agile PLM For Process, версии 5.2.2, 6.0.0.6.3, 6.1.0.0, 6.1.0.1.14 Oracle Agile PLM Framework, версии 9.3.1.0, 9.3.1.1 Oracle Agile Product Supplier Collaboration for Process, версии 5.2.2, 6.1.0.0 PeopleSoft Oracle PeopleSoft Enterprise Campus Solutions, версия 9.0 Oracle PeopleSoft Enterprise PeopleTools, версии 8.50, 8.51, 8.52 Siebel Oracle Siebel UI Framework, версия 8.1.1 Health Sciences Oracle Central Designer, версии 1.3, 1.4, 1.4.2 Oracle Clinical/Remote Data Capture, версии 4.6.0, 4.6.2 Oracle FLEXCUBE Oracle FLEXCUBE Direct Banking, версии 5.0.2, 5.0.5, 5.1.0, 5.2.0, 5.3.0-5.3.4, 6.0.1, 6.2.0, 12 Oracle FLEXCUBE Universal Banking, версии 10.0.0-10.5.0, 11.0.0-11.4.0, 12 Oracle Sun Product Suite Oracle Sun Product Suite Oracle Secure Global Desktop, версия 4.6 Oracle VM Virtual Box, версии 3.2, 4.0, 4.1 Oracle MySQL Product Suite Oracle MySQL Server, версии 5.1.63 и ранее, 5.5.25 и ранее Следующие выпуски исправлений выйдут по графику: 15 января 2013 16 апреля 2013 16 июля 2013 15 октября 2013.

  Oracle начала продажи программно-аппаратного комплекса Oracle Exalytics In-Memory Machine
Источник: cnews Корпорация Oracle объявила о начале продаж Oracle Exalytics In-Memory Machine - высокопроизводительного оптимизированного программно-аппаратного комплекса, реализующего концепцию бизнес-анализа в оперативной памяти. Комплексное решение призвано обеспечивать высокую производительность аналитических систем и приложений по управлению эффективностью предприятия (EPM). Одновременно Oracle объявила о поступлении в продажу новой версии Oracle Business Intelligence Foundation Suite, предлагающей 87 расширений и усовершенствований, в том числе новые возможности визуализации, контекстную интерактивность, повышение производительности и масштабируемости, оптимизацию для Oracle Exalytics и упрощение в использовании и управлении для конечных пользователей, разработчиков и администраторов. По словам разработчиков, организации могут использовать Oracle Exalytics как для преднастроенных аналитических приложений и готовых систем по управлению эффективностью предприятия, так и для собственных разработок в этой области. Оптимизированный программно-аппаратный комплекс позволяет клиентам дополнить функциональность инструментальных панелей и систем отчетности сценариями моделирования, планирования и прогнозирования, которые выполняются в единой среде. Oracle Exalytics спроектирован как оптимизированный программно-аппаратный комплекс, включающий платформу для бизнес-анализа Oracle BI Foundation Suite и реляционную СУБД с обработкой данных в оперативной памяти Oracle TimesTen In-Memory Database for Exalytics, оптимизированную для аналитических задач. Такая архитектура позволяет Oracle Exalytics обеспечивать высокую производительность и масштабируемость при упрощенном развертывании и низкой совокупной стоимости владения, подчеркнули в Oracle.

  Маленькие хитрости: автоматическое восстановление вида указателя курсора
Источник: habrahabrgorynych_zmey Добрый день, коллеги! Те из вас, кто пишет клиентские приложения, наверняка сталкивались с необходимостью менять вид курсора, чтобы показать пользователю, что в данный момент приложение выполняет какую-то обработку данных (длительную или не очень) или выполняет запрос к базе. Хочу поделиться маленькой хитростью, как упростить себе жизнь. Изменять вид курсора все равно придется самостоятельно, а вот восстанавливать вид курсора можно автоматически. Для этого послужит вот такой код: type ICursorSaver = interface end; TCursorSaver = class(TInterfacedObject, ICursorSaver) private FCursor: TCursor; public constructor Create; destructor Destroy; override; end; implementation constructor TCursorSaver.Create; begin FCursor := Screen.Cursor; end; destructor TCursorSaver.Destroy; begin Screen.Cursor := FCursor; inherited; end; Далее в нужном месте кода объявляем переменную типа ICursorSaver и инициализируем ее. var saveCursor: ICursorSaver; begin saveCursor := TCursorSaver.Create; Screen.Cursor := crSQLWait; // здесь свой код, выполняющий обработку данных end; Как это работает? TInterfacedObject ведет учет ссылок на интерфейс, когда счетчик опускается до нуля - вызывается деструктор. В начале области видимости мы создаем объект и инициализируем им интерфейсную переменную, при этом захватывается текущий вид курсора. В конце области видимости интерфейсная переменная разрушается, интерфейс освобождается, деструктор возвращает вид курсора к первоначальному состоянию.

  SQL Server: Базы данных и индексы
Источник: technetdocument.write('.');microsoftГленн Берри, Луи Девидсон и Тим Форд Microsoft логически разделяет объекты управления БД (DMO) на уровне базы данных и файлов на две категории: Относящиеся к базам данных Эти объекты содержат административные представления (DMV), которые позволяют исследовать таблицы и страницы индексов и число строк данной БД, а также выделение страниц на уровне файла. Несколько DMV служат для анализа использования базы данных TempDB. Относящиеся к индексам Сюда относятся представления DMV, связанные с индексами, их характеристиками, с тем как индексы используются, они также помогают определять, какие индексы подойдут для ваших задач. Имена всех представлений в этих двух категориях начинаются с "sys.dm_db_". Эти типы представлений DMV помогают определить эффективную стратегию индексирования, так как это один из лучших способов обеспечения, чтобы самые важные и часто исполняемые запросы могли читать нужные им данные упорядоченными образом и не создавать лишнюю нагрузку на подсистему ввода/вывода. Определение правильного баланса между слишком большим и слишком малым количеством индексов и реализация "правильного" набора индексов исключительно важны для обеспечения максимальной производительности SQL Server. Нужно также следить за базой данных TempDB.

  Oracle security policies
Источник: habrahabrAndyBW В этой статье мне бы хотелось рассказать о решении, которое позволяет организовать ограничение доступа к данным на уровне СУБД, причем в том случае, когда ограничиваемая таблица сама содержит данные влияющие на ограничение. Пример, который я приведу, сильно упрощен, но необходимые средства, используемые в решении, предоставлены исчерпывающе. Протестировано на Oracle 11g R2. Предположим, что пользователю SCOTT, потребовалось организовать ограничение доступа к данным некоторых таблиц, но критерии, по которым должен предоставляться доступ выглядят так, что требуется производить анализ данных ограничиваемой таблицы. Казалось бы, что может быть проще - поехали. Установим соединение с БД от имени SCOTT и создадим таблицы, одна из которых будет содержать список пользователей имеющих доступ, а вторая сами данные: CREATE TABLE scott.user_allowed ( ua_id NUMBER, oracle_user VARCHAR2(50) ); Table created. insert into scott.user_allowed (ua_id, oracle_user) values (1, 'SCOTT'); insert into scott.user_allowed (ua_id, oracle_user) values (2, 'OTHERUSER'); 1 row created.

  Немного про Deadlock
Источник: habrahabrzim32 Это совсем краткий пост о причинах возникновения Deadlock В более менее нагруженных проектах, использующих транзакции InnoDB, в любой момент может возникнуть ошибка вида "Deadlock found when trying to get lock; try restarting transaction" Главное не паниковать при виде этих страшных слов, сейчас мы разберемся почему это происходит. Немного о типах блокировок В оффициальной документации Mysql про типы блокировок написано совсем немного, а именно: Есть 2 типа блокировок - Shared (S) и Exclusive (X). Первый тип позволяет только читать данные прикрытые этой блокировкой, второй - читать, писать, удалять и (о чем скромно умолчали) - получить блокировку уровня S Так же сказано что если Транзакция№1 владеет блокировкой типа S на строке r, то другая Транзакция№2 может захватить эту блокировку. Чтобы получить блокировку типа X на этой строке, второй транзакции придется тихо подождать в сторонке. Если же Транзакция№1 владеет блокировкой типа X на строке r, то Транзакция№2 не может ни захватить эту же блокировку, ни получить новую уровня S. Она опять тихо идет и ждет пока Транзакция№1 освободит требуемую строку. Здесь есть один важный момент, который необходимо усвоить: блокировки S и X - это 2 разные блокировки.

  Строим Nested Set дерево без рекурсии
Источник: habrahabrgarex Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL? Краткий обзор методов хранения деревьев в БДЕсли кратко, то: AL - когда у нас родитель хранится в колонке типа parent_id: ''1'' MP - полный путь до элемента хранится в колонке типа path: ''1.2.5'' NS [2, 3] - пара колонок lft и rgt, хранящие диапазон всех вложенных элементов, например, корень дерева из 9 элементов будет иметь левое значение ''1'', а правое - ''18'' MySQL и рекурсияВ случае MySQL мы имеем рекурсию, но только на уровне хранимых процедур да и то до 255 уровней. Также мы можем задействовать рекурсию в связке язык программирования + БД, но число запросов здесь может быть потрясающим. Лучше делать всё в базе. Погуглив мы узнаём, что любую рекурсивную задачу можно решить без неё родимой [4]. Задавшись подобным вопросом мы можем попробовать и… у нас получится! Ниже мы представляем вашему вниманию функцию rebuild_nested_set_tree, которая заполняет lft и rgt, зная parent_id.

  Перенос сайта(ов) без простоя и потери данных между выделенными серверами
Источник: habrahabrhtaccess Казалось бы, что сложного перенести сайт на другой сервер? Наверно многие из нас копировали свои первые хоумпейджи с хостинга на хостинг в поисках лучшего, еще учась в школе или на первых курсах университета. Или вешая на уши лапши руководству, объясняли, что задача эта не решается мгновенно и сайт сутки работать не будет, ибо DNS такая штука…  Если в целом, ерундовая задача, правда? Но как сделать все идеально? Так, чтобы без простоев, чтобы не было расхождений в БД, чтобы не потерялись какие-нибудь файлики-аватарки-картинки, когда обновляется DNS запись IN A и у половины пользователей старый сайт, а у половины новый. А если это highload? Или сайт делало несколько поколений "лучших" программистов, считающих своим долгом создать новое подключение к БД в своем "модуле" для сайта. Наконец, если таких сайтов >10? Скопировать файлы Сделать дамб баз данных Развернуть на новом сервере На старом сервере заменить все коннекты к бд к новому Настроить DNS ...Сколько это займет времени? Сколько драгоценных минут сайт не будет работать\не будет работать правильно?Почему-то я не нашел какой-либо статьи на хабре, поэтому решил написать несколько приемов, как можно перенести корявый проект или сразу несколько так, чтобы шеф был доволен стабильной работой сайта. Все это актуально скорее для сайтов, написанных на РНР, для администраторов столкнувшихся с проектами, где не использовались фреймворки, cms и голова при написании кода. 1. Перенос файловЛучший способ через ssh при помощи rsync: rsync -avz -e ssh логин@удалённый.хост:/путь/откуда/ /путь/куда/ Так rsync синхронизирует папки инкрементально, то есть копирует только то, чего не хватает и не тронет что-то новое.

  API PHP в JavaScript. Краткий обзор PHP.JS
Источник: habrahabrKEKSOV Лень - двигатель прогресса. Люди постоянно создают вещи, призванные облегчить их нелегкую долю. Именно лень позволила тряпке и швабре превратиться в моющий робот-пылесос. Похожие процессы происходят и в сфере компьютерных технологий. Вместо того, чтобы довольствоваться программированием в машинных кодах, общаясь с процессором через интерфейс перфокарт, люди стали придумывать всякие клавиатуры, мышки и мониторы, а так же языки программирования. Последние становились все более и более высокоуровневыми. В результате имеем то, что иммем - далеко неполный список ЯП.

  О новой версии MS SQL Server 2012
Источник: info-compinfo-comp Компания Microsoft выпустила новую систему управления базами данных (СУБД) если быть точнее, то это уже давно целая информационная система. А так как мы с Вами изучаем SQL и различные СУБД, то нас это конечно должно заинтересовать, что же нам ждать от нового MS SQL Server. Как мы знаем, что MS SQL Server очень популярен во всем мире, в том числе и в России, и, наверное, каждый системный администратор хоть раз, да сталкивался с какой-нибудь версией данного продукта. На сегодняшний день популярны следующие версии:SQL Server 2000 (даже эту версию до сих пор активно используют);SQL Server 2005;SQL Server 2008. Теперь пришло время поговорить о том, чего нового нам преподнесла компания Microsoft в новом SQL сервере. Сама компания выделяет следующие особенности и целый ряд усовершенствований. ( Материал взят с официального сайта компании Microsoft - Microsoft.com также там Вы можете посмотреть подробней о всех усовершенствованиях .) •   SQL Server AlwaysOn - за счёт интегрированного решения поддержки высокого уровня доступности данных и аварийного восстановления, SQL Server AlwaysOn позволяет существенно уменьшить время простоя (как запланированное, так и внеочередное).

  Как сделать последовательность (sequence) в MySql?
Источник: info-compinfo-comp Всем известно, что такого объекта, в базе MySql, как "Последовательность" или "Sequence" нет, поэтому очень часто приходиться самим реализовывать последовательность и сегодня я расскажу об одном способе, который я использовал, когда мне понадобился данный объект в MySql. Начнем как всегда с теории, для того чтобы вы понимали, о чем идет речь. Последовательность ( sequence )  - это объект базы данных, при обращении к которому будет возвращаться в отсортированном виде уникальное число с тем инкрементом, который Вы сами зададите. Вообще, в других СУБД, кроме инкремента, можно задавать много параметров, например минимальное, максимальное значение и так далее. Как было сказано выше, в MySql отсутствует данный объект, и многие выходят из этой ситуации путем создания в таблице поля с auto_increment при котором добавление новой записи в таблицу будет всегда с уникальным значением. Но это не всегда спасает, например, мне как-то раз понадобилось возвращать в отсортированном виде уникальное значение, а записи велись в разных таблицах, поэтому auto_increment мне не подошел, в другой СУБД на помощь мне пришла бы "последовательность" но так как реализация была сделана в MySql, пришлось придумать свою последовательность. На самом деле все примитивно и просто, сначала расскажу сам алгоритм.

  Создание и удаление таблиц в MS SQL Server
Источник: ws-maxws-max Создание и удаление таблиц в ms sql server Все данные в БД sql server хранятся в таблицах.Таблицы состоят из колонок, объединяющих значения одного типа, и строк - записей в таблице. В одной БД может быть до 2 миллиардов таблиц, в таблице - 1024 колонки, в одной строке (записи) - 8060 байтов. sql server поддерживает следующие типы данных: Тип данных Обозначение Размер, байтБинарные данные binaryvarbinary[(n)] 1-8000Символы char[(n)]varchar[(n)] 1-8000( до 8000 символов)Символы unicode nchar[(n)]nvarchar[(n)] 1-8000(до 4000 символов)Дата и время datetime 8smalldatetime 4Точные числа decimal[(p[,s])]numeric[(p[,s])] 5-17Приблизительные числа float[(n)] real 4-8 4Глобальный идентификатор uniqueidentifier 16Целые числа int smallint, tinyint 4 2, 1Денежки money, smallmoney 8, 4Специальные bit, cursor,sysname, timestamp 1, 0-8Текст и изображение text, image 0-2 ГбТекст unicode ntext 0-2 Гб Таблицы можно создавать с помощью оператора create table языка transact-sql, а также с помощью enterprise manager. Рассмотрим сначала как это делается с помощью transact-sql. Содание таблиц с помощью create tableДля создания таблиц применяется оператор create table.Вот как выглядит упрощенный синтаксис этого оператора: create table table_name(column_name data_type [null / not null][,...n])Например: create table member( member_no int not null,lastname char(50) not null,firstname char(50) not null,photo image null) Этим оператором создается таблица member, состоящая из четырех колонок: member_no - имеет тип int, значения null не допускаютсяlastname - имеет тип char(50) - 50 символов, значения null не допускаютсяfirstname - аналогично lastnamephoto - имеет тип image (изображение), допускается значение nullПримечаниеnull - специальное обозначение того, что элемент данных не имеет значения. В описании типа колонки указывается, что элементы данных могут быть неинициализированы. При указании not null - "пустые" значения не допускаются.

  Работа с датами и временем в PHP и MySQL
Источник: webmasterswebmasters При работе с любым языком программирования, задачи, касающиеся даты и времени, часто является тривиальными и простыми. И PHP, к счастью, имеет один из самых мощных инструментов по работе с датой/временем, который поможет вам легко справиться со всеми видами задач связанных с временем: работа с Unix timestamp, форматирование дат для лучшего восприятия их человеком, работа с часовыми поясами, подсчет количества дней между сегодняшним днем и, например, вторым вторником в следующем месяце, и т.д. В этой статье вы ознакомитесь с основными временными функциями PHP (time(), mktime() и date()) и их объектно-ориентированными "коллегами", а затем познакомитесь с MySQL-датами, и мы покажем вам, как подружить их с PHP. PHP-функции даты и времени Большая часть этой статьи будет посвящена работе с Unix-временем или POSIX. Время здесь представлено в виде количества секунд, прошедших с полуночи 1 января 1970 года, UTC. Если вы заинтересованы в полной истории времени Unix, то ознакомьтесь со статьей Unix time в Википедии. UTC, известное также под именем Coordinated Universal Time, также известное как GMT, а иногда и Zulu time, это время нулевого градуса долготы.   Все остальные часовые пояса в мире являются положительным или отрицательным смещением относительно этого времени.

  Рынок СУБД для Хранилищ данных. Итоги 2006 года
Источник: iso Подготовлено : по материалам зарубежных сайтов.Перевод: Intersoft Lab Текущее состояние рынка Рынок СУБД для ХД состоит из продуктов, обеспечивающих программную инфраструктуру для поддержки Хранилища любого размера. Небольшим считается хранилище размером меньше 5 Тбайт, средним - 5-30 Тбайт, а крупное ХД - больше 20 Тбайт. Для измерения масштабов ХД учитывается объем данных, извлеченных из исходной системы, за исключением всех специфических структур, связанных с дизайном Хранилища (индексов, кубов, звезд и таблиц суммирования). Рынок СУБД для ХД продолжает развиваться, все больше отмечается ориентация на BI, при этом новые поставщики вступают в этот сектор, а зрелые производители предлагают инновационные решения. Проявляется острая конкуренция среди лидеров. IBM, Oracle и Teradata продолжают соперничать в области внедрения крупных Хранилищ, интенсивно проводя маркетинговые мероприятия и  разрабатывая новую функциональность. Хорошими возможностями обладает и СУБД компании Microsoft.

  Microsoft Project Central в управлении проектами
Источник: Компьютер-ИНФО, № 5(275)Игорь Кузнецов Программа планирования работ, созданная фирмой Microsoft, - Microsoft Project 2000 - содержит новый компонент Project Central, позволяющий осуществлять взаимодействие с исполнителями работ и концентрирующий информацию о проекте таким образом, что она становится доступна не только менеджеру проекта, но и каждому исполнителю в части работ, его касающихся. Так как этот компонент должен устанавливаться на сервер, то для его поддержки требуются наличие Internet Information Server и возможность работы с SQL сервером. Хотя последнее не обязательно, так как при установке Project Central дополнительно можно установить Microsoft Database Engine, выполняющую минимальную поддержку серверных баз данных. Предусмотрена также защита от несанкционированного доступа к информации о проекте и ее изменения. В приложении Project Central обеспечено специальное администрирование, создание учетных записей, аутентификация пользователей, в том числе с помощью паролей. Конечно, менеджер проекта создает план работ и оптимизирует его средствами Project 2000. Поэтому на его компьютере обязательно должно быть установлено это приложение.



1 [ 2 ] 3 4

Главная »  Sql 

© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено.