Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

Вы, возможно, обратили внимание на новые опции в меню Object|Options, эти опции позволяют вам выбирать для просмотра различные режимы конфигурации. Желательно в панели View в группе Select Configuration Modes включить (отметить галочками) все выключатели. При всех включенных checkbox-ах вы получите в свое распоряжение расширенный список всех драйверов и псевдонимов, доступных вам для использования. Если галочка напротив ‘virtual’ отсутствует, вы не сможете увидеть драйверы, добавленные через менеджер MS ODBC, а увидете драйверы, установленный только с помощью BDE (в соответствии с методом 2).

Oracle 

Связь Oracle

с Win95

Delphi 2 

Оптимизация связи Oracle с Windows 95

Предварительные условия:

• Windows 95

• Установленное клиентское программное обеспечение для доступа к Oracle & программа для соединения с Oracle Server через TCP/IP.

• (Опционально) Программное обеспечение Delphi 2.0 C/S для тестирования результатов.

Цель документа:

помочь увеличить скорость соединения Oracle под Windows 95. Под WinNT такая проблема не стоит, следовательно, данный документ рассматривает только работу с Windows 95. Ниже вы видите разницу в скорости выполнения запроса, выполненного до модификации, и после:

До : Win95 = 10-15 секунд. WinNT = 2-3 секунд.

После : Win95 = 3-4 секунд. (Большое улучшение)

Проблема: Windows 95 в сущности ищет адреса IPC в нескольких сетевых узлах ДО получения соединения с Oracle DNS, WinNT же поступает по другому.

Решение: Измените файл Oracle SQLNET.ORA для выключения вышеуказанной характеристики Windows 95.

Решение шаг-за-шагом:

1. Откройте в Notepad или Write файл SQLNET.ORA. (Данный файл расположен в каталоге <ORA_HOME>\network\admin. Проигнорируйте любые другие разновидности этого файла)

Данный файл должен выглядеть примерно следующим образом:

################

# Filename......: sqlnet.ora

# Node..........: local.world

# Date..........: 24-MAY-94 13:23:20

################

TRACE_LEVEL_CLIENT = OFF

sqlnet.expire_time = 15

names.default_domain = borland.world

name.default_zone = borland.world

Добавьте следующий параметр в файл SQLNET.ORA:

AUTOMATIC_IPC = OFF

После изменений файл должен выглядеть примерно так:

################

# Filename......: sqlnet.ora

# Node..........: local.world

# Date..........: 24-MAY-94 13:23:20

################

AUTOMATIC_IPC = OFF

TRACE_LEVEL_CLIENT = OFF

sqlnet.expire_time = 15

names.default_domain = borland.world

name.default_zone = borland.world

Сохраните измененный файл SQLNET.ORA и ура! В дальнейшем при инициализации соединения с Oracle время соединения вместо 15

секунд составит всего лишь 3 секунды. Скорость работы Delphi существенно увеличится. 

Возникла необходимость в обработке исключительных ситуаций в PL/SQL процедуре (Oracle7 WG Server Release 7.3.2.2.0). Почему у меня не получается?

Nomadic отвечает:

Объявить выборку SELECT * FROM CUSTOM.CAMAIN20TEMP WHERE CC_07_01=curCC_07_01 AND CC_07_02=curCC_07_02 AND CC_07_03=curCC_07_03 курсором, а потом примерно так:

loop

fetch_cursor;

выход когда фетчить больше нечего;

begin

INSERT INTO CUSTOM.CAMAIN20 чего нафетчили;

EXCEPTION

WHEN others THEN

BEGIN

DBMS_OUTPUT.PUT_LINE('ВВОД ДУБЛЯ В CUSTOM.CAMAIN20');

END

end

end loop;
 

Поясните, чем в Oracle являются понятия Instance, Database etc.?

Nomadic отвечает:

Перевод документации:

Что такое ORACLE Database?

Это данные которые будут обрабатываться как единое целое. Database состоит из файлов операционной системы. Физически существуют database files и redo log files. Логически database files содержат словари, таблицы пользователей и redo log файлы. Дополнительно database требует одну или более копий control file.

Что такое ORACLE Instance?

ORACLE Instance обеспечивает программные механизмы доступа и управления database. Instance может быть запущен независимо от любой database (без монтирования или открытия любой database). Один instance может открыть только одну database. В то время как одна database может быть открыта несколькими Instance.

Instance состоит из:

SGA (System Global Area), которая обеспечивает коммуникацию между процессами;

до пяти (в последних версиях больше) бэкграундовых процессов.

От себя добавлю – database включает в себя tablespace, tablespace включает в себя segments (в одном файле данных может быть один или несколько сегментов, сегменты не могут быть разделены на несколько файлов). segments включают в себя extents. 

Как заставить Oracle анализировать все таблицы базы данных?

Nomadic отвечает:

Конечно, можно использовать DBMS_SQL, DBMS_JOB…

А можно и так:

#!/bin/sh

#

# Analyze all tables

#

SQLFILE=/tmp/analyze.sql LOGFILE=/tmp/analyze.log

echo @connect dbo/passwd@> $SQLFILE

$ORACLE_HOME/bin/svrmgrl <> $SQLFILE

connect dbo/passwd

SELECT 'TABLE', TABLE_NAME FROM all_tables WHERE owner = 'DBO';

Поделиться с друзьями: