2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
5 <meta name="description" content=" Moved convertdb and gpdb_add_vob into Clearcase Attempting to standardize which Perl to use, which Oracle.pm to pickup and how to insure that other sites have the proper prerequisites for GPDB Discovered that Oracle is not supported on Linux here...">
6 <meta name="generator" content="Movable Type 5.2.3">
7 <title>GPDB Database performance - Status</title>
8 <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9 <link rel="canonical" href="http://defaria.com/blogs/Status/2006/12/gpdb-database-p.html">
10 <meta name="viewport" content="width=device-width,initial-scale=1">
11 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
13 <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14 <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
17 <link rel="start" href="http://defaria.com/blogs/Status/">
19 <link rel="prev" href="http://defaria.com/blogs/Status/2006/12/userssites-and.html" title="Users/Sites and Projects">
20 <link rel="next" href="http://defaria.com/blogs/Status/2006/12/reworking-gpdb.html" title="Reworking GPDB tables, mkview">
21 <!-- Open Graph Protocol -->
22 <meta property="og:type" content="article">
23 <meta property="og:locale" content="en-us">
24 <meta property="og:title" content="GPDB Database performance">
25 <meta property="og:url" content="http://defaria.com/blogs/Status/2006/12/gpdb-database-p.html">
26 <meta property="og:description" content=" Moved convertdb and gpdb_add_vob into Clearcase Attempting to standardize which Perl to use, which Oracle.pm to pickup and how to insure that other sites have the proper prerequisites for GPDB Discovered that Oracle is not supported on Linux here...">
27 <meta property="og:site_name" content="Status">
28 <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
30 <meta itemprop="description" content=" Moved convertdb and gpdb_add_vob into Clearcase Attempting to standardize which Perl to use, which Oracle.pm to pickup and how to insure that other sites have the proper prerequisites for GPDB Discovered that Oracle is not supported on Linux here...">
31 <link itemprop="url" href="http://defaria.com/blogs/Status/2006/12/gpdb-database-p.html">
32 <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
37 <div id="container-inner">
38 <header id="header" role="banner">
39 <div id="header-inner">
40 <div id="header-content">
42 <a href="http://defaria.com/blogs/Status/">
51 <nav role="navigation">
53 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
62 <div id="content-inner">
63 <ul class="breadcrumb breadcrumb-list">
64 <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65 <li class="breadcrumb-list-item">GPDB Database performance</li>
67 <div id="individual-main" class="main" role="main">
68 <article id="entry-1858" class="entry entry-asset asset hentry">
69 <div class="asset-header">
70 <h2 itemprop="name" class="asset-name entry-title">GPDB Database performance</h2>
71 <footer class="asset-meta">
72 <ul class="asset-meta-list">
73 <li class="asset-meta-list-item">Posted on <time datetime="2006-12-19T17:32:21-08:00" itemprop="datePublished">December 19, 2006</time></li>
74 <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
77 <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/gpdb/">GPDB</a></li>
83 <div class="entry-content asset-content" itemprop="articleBody">
85 <li>Moved convertdb and gpdb_add_vob into Clearcase</li>
87 <li>Attempting to standardize which Perl to use, which Oracle.pm to pickup and how to insure that other sites have the proper prerequisites for GPDB</li>
89 <li>Discovered that Oracle is not supported on Linux here at TI. This will be a problem for GPDB</li>
91 <li>Still working on issues of the new GPDB design and attempting to get gpdb_add_project.pl to work with it</li>
93 <li>Got definition of performance problem that Donna is experiencing. She is attempting to populate a pull down with just the project names for a site. Doing so causes lots of transfer of data as the current GPDB API gpdb_getProject effectively transfers all kinds of project information where Donna needs only the project names.</li>
95 <li>Developed a new API, gpdb_getProjectsAtSite that returns only the project names in a more efficient manner</li>
97 <h3>gpdb_getProjectsAtSite</h3>
99 <p>Donna may be right and we may need to enlist the help of Ajay here.</p>
101 <p>I coded up a gpdb_getProjectsAtSite function:</p>
103 <div class=code><pre>
104 sub gpdb_getProjectsAtSite ($$) {
105 my ($site_name, $resource) = @_;
109 unless (lc $resource eq "clearcase" or
110 lc $resource eq "designsync") {
111 setError (-1, "gpdb_getProjectsAtSite: Resource must be one of 'clearcase' or 'designsync'");
115 my $siteID = siteID $site_name;
116 my $condition = "site_id = $siteID and $resource = 'Y'";
118 my @projects = @{GPDB::primitive::searchData ("projects", $condition)};
121 foreach (@projects) {
123 my $name = projectName $project {PARENT_PROJ_ID};
127 push @project_names, $name;
130 return @project_names;
131 } # gpdb_getProjectsAtSite
134 <p>Basically you call it with a site name and a resource (being clearcase or designsync). It does some housekeeping (resetting the error variables and checking that resource is one of clearcase or designsync). Next it translates the site name to an ID. We need an ID
135 and we shouldn't burden the users with having to supply that. The siteID function is a new internal function for gpdb.pm because I often find the need to translate a site name to an ID. Next we compose a condition which is the part after "where" that says find things that have "site_id = $siteID and $resource = 'Y'". Remember resource is either "clearcase" or "designsync" and we wish to find project records where the site matches and the resource is toggled on (i.e. = 'Y').</p>
137 <p>There's a new primitive, searchData because getData only finds single records by "ID" only and findData will return multiple records based on a fieldname = value specific condition. Here we want two different fieldname/value pairs and an "and" condition. Therefore the searchData primitive takes two parameters, the table name and the condition, and composes a "select * from $tableName where $condition" and returns an array of hashes like findData does.</p>
139 <p>At this point we have an array of projects whose site IDs match our passed in Site Name and whose $resource is toggled on as 'Y'. But we want to return project names to be nice for the user and that's what the foreach loop does. Note it calls another new internal routine called projectName which returns the project's name for the product ID (the parent project ID that is). Note also that projectName will return undef if the project is retired. That's what the "next if !$name" statement is for. All non-retired project names therefore are pushed onto @project_names which are returned from the subroutine.</p>
141 <p>I do not see how I could make this any faster.</p>
143 <p>Well how did it perform? Selecting on Dallas and Clearcase projects (because gpdb_add_project.pl that does DesignSync additions is still not working well) there are 194 Clearcase projects at the Dallas site. Running a small test script here and at Manchester yields:</p>
145 <div class=code><pre>
146 <b>Dallas:</b><u>time testproj_names.pl</u>
151 <b>Manchester:</b><u>time testproj_names.pl</u>
157 <p>That's 24 seconds from Manchester or roughly 3.5 times as slow.</p>
159 <p>Switching over to selecting designsync records, there are 9 of them at Dallas. Timings for this are:</p>
161 <div class=code><pre>
162 <b>Dallas:</b><u>time testproj_names.pl</u>
167 <b>Manchester:</b><u>time testproj_names.pl</u>
173 <p>Again in the order of 3 times as slow</p>
175 <nav class="page-navigation entry-navigation pagination content-nav">
176 <ul class="page-navigation-list">
178 <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2006/12/userssites-and.html" title="Users/Sites and Projects">Previous entry</a></li>
181 <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2006/12/reworking-gpdb.html" title="Reworking GPDB tables, mkview">Next entry</a></li>
186 <aside id="zenback" class="zenback feedback">
187 Please paste Zenback script code here.
194 <aside class="widgets related" role="complementary">
195 <nav class="widget-search widget">
196 <div class="widget-content">
197 <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
199 <input type="text" name="search" value="" placeholder="Search...">
201 <input type="hidden" name="IncludeBlogs" value="8">
203 <input type="hidden" name="limit" value="20">
204 <button type="submit" name="button">
205 <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
211 <nav class="widget-archive-category widget">
212 <h3 class="widget-header">Categories</h3>
213 <div class="widget-content">
216 <ul class="widget-list">
219 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
227 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
235 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
243 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
251 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
259 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
267 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
275 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
283 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
291 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
299 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
307 <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
319 <nav class="widget-archive-dropdown widget">
320 <h3 class="widget-header">Archives</h3>
321 <div class="widget-content">
323 <option>Select a Month...</option>
325 <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
329 <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
333 <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
337 <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
341 <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
345 <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
349 <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
353 <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
357 <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
361 <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
365 <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
369 <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
373 <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
377 <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
381 <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
385 <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
389 <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
393 <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
397 <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
401 <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
405 <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
409 <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
413 <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
417 <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
421 <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
425 <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
429 <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
433 <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
437 <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
441 <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
445 <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
449 <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
453 <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
457 <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
461 <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
465 <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
469 <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
473 <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
477 <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
481 <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
485 <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
489 <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
493 <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
497 <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
501 <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
505 <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
509 <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
513 <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
517 <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
521 <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
525 <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
529 <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
533 <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
537 <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
541 <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
545 <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
549 <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
553 <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
557 <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
561 <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
565 <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
569 <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
573 <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
577 <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
581 <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
585 <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
589 <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
593 <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
597 <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
601 <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
605 <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
609 <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
617 <div class="widget-syndication widget section">
618 <div class="widget-content">
619 <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
627 <footer id="footer" role="contentinfo">
628 <div id="footer-inner">
629 <div id="footer-content">
630 <nav role="navigation">
632 <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
638 <p class="license">© Copyright 2016.</p>
639 <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
645 <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
646 <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>