# $Id: test.pl
#
# To test insert rate of Oracle DBD.
#
#*********************************************************************
+********
use DBI;
use strict;
use diagnostics;
if (@ARGV < 3)
{
print "\n";
print " test.pl <database name> <database account> <database accoun
+t password>\n";
print "\n";
exit;
}
my $database_name = $ARGV[0];
my $db_user_name = $ARGV[1];
my $db_password = $ARGV[2];
my $data_source = "dbi:Oracle:$database_name";
if (!defined($db_password))
{
$db_password = "password";
}
if (!defined($db_user_name))
{
$db_user_name = "userid";
}
if (!defined($database_name))
{
$database_name = "app";
}
#
# Connect to the database
#
$dbh = DBI->connect($data_source,
$db_user_name,
$db_password,
{ RaiseError => 1, AutoCommit => 1 , ora_session_m
+ode => 0})
|| die "Could not connect to database '$database_n
+ame'\n";
$dbh->{RowCacheSize} = 100;
my $rc; # return code
my $func = $dbh->prepare(q{
INSERT INTO temp ( ACCT_STATUS_TYPE, NAS_USER_NAME, NAS_IDENTIFIER, NA
+S_IP_ADDRESS,
ACCT_SESSION_ID, FRAMED_IP_ADDRESS, SERVICE_TYPE, FRAMED_PROTOCOL, MED
+IUM_TYPE, NAS_PORT_TYPE,
NAS_PORT, NAS_PORT_ID, NAS_REAL_PORT, ACCT_DELAY_TIME, ACCT_SESSION_TI
+ME, ACCT_TIME_STAMP,
RATE_LIMIT_RATE, RATE_LIMIT_BURST, POLICE_RATE, POLICE_BURST, FILTER_I
+D, FORWARD_POLICY,
HTTP_REDIRECT_PROFILE_NAME, CONTEXT_NAME, SESSION_TIMEOUT, IDLE_TIMEOU
+T, RB_DHCP_MAX_LEASES,
MULTICAST_SEND, MULTICAST_RECEIVE, MULTICAST_MAX_GROUPS, IGMP_PROFILE_
+NAME,
QOS_POLICING_POLICY_NAME, QOS_METERING_POLICY_NAME, QOS_PQ_POLICY_NAME
+, ATM_PROFILE_NAME, PPPOE_URL,
PPPOE_MOTM, PPPOE_IP_ROUTE, PPP_DNS_PRIMARY, PPP_DNS_SECONDARY, PPP_NB
+NS_PRIMARY,
PPP_NBNS_SECONDARY, ACCT_TERMINATE_CAUSE, SESSION_ERROR_MSG, ACCT_REAS
+ON, ACCT_INPUT_OCTETS_64,
ACCT_OUTPUT_OCTETS_64, ACCT_INPUT_PACKETS_64, ACCT_OUTPUT_PACKETS_64,
+ACCT_MCAST_INPUT_OCTETS_64,
ACCT_MCAST_OUTPUT_OCTETS_64, ACCT_MCAST_INPUT_PACKETS_64,
ACCT_MCAST_OUTPUT_PACKETS_64 ) VALUES (
'Start', 'joe', 'ser-1', '127.0.0.1', '0B00FFFF90000010-40647961', NUL
+L, 'Outbound-User'
, NULL, 'DSL', 'Virtual', 201392128, '12/1 clips 20013', NULL, NULL, N
+ULL, 99999999
, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'BASIC', NULL, NULL, 1, NU
+LL, NULL, NULL
, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NU
+LL, NULL, NULL
, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
},{ora_check_sql => 0 });
my $start_time = time;
print "Start of insert test, time:", $start_time, "\n";
foreach (1..1500) {
$func->execute();
}
my $end_time = time;
print "End of insert test, time:", $end_time, "\n";
$difference = $end_time - $start_time;
print "Time taken: ", $difference, "\n";
#
# to be absolutely sure that the export selection criteria and the pur
+ge criteria sync up we
# pick a time in the recent past by subtracting 6 hours (or 3600 seco
+nds)away from the max timestamp
#
print "end \n";
$dbh->disconnect;
1;
|