Search Results

Search found 13488 results on 540 pages for 'calculator date calculation'.

Page 225/540 | < Previous Page | 221 222 223 224 225 226 227 228 229 230 231 232  | Next Page >

  • Query optimization using composite indexes

    - by xmarch
    Many times, during the process of creating a new Coherence application, developers do not pay attention to the way cache queries are constructed; they only check that these queries comply with functional specs. Later, performance testing shows that these perform poorly and it is then when developers start working on improvements until the non-functional performance requirements are met. This post describes the optimization process of a real-life scenario, where using a composite attribute index has brought a radical improvement in query execution times.  The execution times went down from 4 seconds to 2 milliseconds! E-commerce solution based on Oracle ATG – Endeca In the context of a new e-commerce solution based on Oracle ATG – Endeca, Oracle Coherence has been used to calculate and store SKU prices. In this architecture, a Coherence cache stores the final SKU prices used for Endeca baseline indexing. Each SKU price is calculated from a base SKU price and a series of calculations based on information from corporate global discounts. Corporate global discounts information is stored in an auxiliary Coherence cache with over 800.000 entries. In particular, to obtain each price the process needs to execute six queries over the global discount cache. After the implementation was finished, we discovered that the most expensive steps in the price calculation discount process were the global discounts cache query. This query has 10 parameters and is executed 6 times for each SKU price calculation. The steps taken to optimise this query are described below; Starting point Initial query was: String filter = "levelId = :iLevelId AND  salesCompanyId = :iSalesCompanyId AND salesChannelId = :iSalesChannelId "+ "AND departmentId = :iDepartmentId AND familyId = :iFamilyId AND brand = :iBrand AND manufacturer = :iManufacturer "+ "AND areaId = :iAreaId AND endDate >=  :iEndDate AND startDate <= :iStartDate"; Map<String, Object> params = new HashMap<String, Object>(10); // Fill all parameters. params.put("iLevelId", xxxx); // Executing filter. Filter globalDiscountsFilter = QueryHelper.createFilter(filter, params); NamedCache globalDiscountsCache = CacheFactory.getCache(CacheConstants.GLOBAL_DISCOUNTS_CACHE_NAME); Set applicableDiscounts = globalDiscountsCache.entrySet(globalDiscountsFilter); With the small dataset used for development the cache queries performed very well. However, when carrying out performance testing with a real-world sample size of 800,000 entries, each query execution was taking more than 4 seconds. First round of optimizations The first optimisation step was the creation of separate Coherence index for each of the 10 attributes used by the filter. This avoided object deserialization while executing the query. Each index was created as follows: globalDiscountsCache.addIndex(new ReflectionExtractor("getXXX" ) , false, null); After adding these indexes the query execution time was reduced to between 450 ms and 1s. However, these execution times were still not good enough.  Second round of optimizations In this optimisation phase a Coherence query explain plan was used to identify how many entires each index reduced the results set by, along with the cost in ms of executing that part of the query. Though the explain plan showed that all the indexes for the query were being used, it also showed that the ordering of the query parameters was "sub-optimal".  Parameters associated to object attributes with high-cardinality should appear at the beginning of the filter, or more specifically, the attributes that filters out the highest of number records should be placed at the beginning. But examining corporate global discount data we realized that depending on the values of the parameters used in the query the “good” order for the attributes was different. In particular, if the attributes brand and family had specific values it was more optimal to have a different query changing the order of the attributes. Ultimately, we ended up with three different optimal variants of the query that were used in its relevant cases: String filter = "brand = :iBrand AND familyId = :iFamilyId AND departmentId = :iDepartmentId AND levelId = :iLevelId "+ "AND manufacturer = :iManufacturer AND endDate >= :iEndDate AND salesCompanyId = :iSalesCompanyId "+ "AND areaId = :iAreaId AND salesChannelId = :iSalesChannelId AND startDate <= :iStartDate"; String filter = "familyId = :iFamilyId AND departmentId = :iDepartmentId AND levelId = :iLevelId AND brand = :iBrand "+ "AND manufacturer = :iManufacturer AND endDate >=  :iEndDate AND salesCompanyId = :iSalesCompanyId "+ "AND areaId = :iAreaId  AND salesChannelId = :iSalesChannelId AND startDate <= :iStartDate"; String filter = "brand = :iBrand AND departmentId = :iDepartmentId AND familyId = :iFamilyId AND levelId = :iLevelId "+ "AND manufacturer = :iManufacturer AND endDate >= :iEndDate AND salesCompanyId = :iSalesCompanyId "+ "AND areaId = :iAreaId AND salesChannelId = :iSalesChannelId AND startDate <= :iStartDate"; Using the appropriate query depending on the value of brand and family parameters the query execution time dropped to between 100 ms and 150 ms. But these these execution times were still not good enough and the solution was cumbersome. Third and last round of optimizations The third and final optimization was to introduce a composite index. However, this did mean that it was not possible to use the Coherence Query Language (CohQL), as composite indexes are not currently supporte in CohQL. As the original query had 8 parameters using EqualsFilter, 1 using GreaterEqualsFilter and 1 using LessEqualsFilter, the composite index was built for the 8 attributes using EqualsFilter. The final query had an EqualsFilter for the multiple extractor, a GreaterEqualsFilter and a LessEqualsFilter for the 2 remaining attributes.  All individual indexes were dropped except the ones being used for LessEqualsFilter and GreaterEqualsFilter. We were now running in an scenario with an 8-attributes composite filter and 2 single attribute filters. The composite index created was as follows: ValueExtractor[] ve = { new ReflectionExtractor("getSalesChannelId" ), new ReflectionExtractor("getLevelId" ),    new ReflectionExtractor("getAreaId" ), new ReflectionExtractor("getDepartmentId" ),    new ReflectionExtractor("getFamilyId" ), new ReflectionExtractor("getManufacturer" ),    new ReflectionExtractor("getBrand" ), new ReflectionExtractor("getSalesCompanyId" )}; MultiExtractor me = new MultiExtractor(ve); NamedCache globalDiscountsCache = CacheFactory.getCache(CacheConstants.GLOBAL_DISCOUNTS_CACHE_NAME); globalDiscountsCache.addIndex(me, false, null); And the final query was: ValueExtractor[] ve = { new ReflectionExtractor("getSalesChannelId" ), new ReflectionExtractor("getLevelId" ),    new ReflectionExtractor("getAreaId" ), new ReflectionExtractor("getDepartmentId" ),    new ReflectionExtractor("getFamilyId" ), new ReflectionExtractor("getManufacturer" ),    new ReflectionExtractor("getBrand" ), new ReflectionExtractor("getSalesCompanyId" )}; MultiExtractor me = new MultiExtractor(ve); // Fill composite parameters.String SalesCompanyId = xxxx;...AndFilter composite = new AndFilter(new EqualsFilter(me,                   Arrays.asList(iSalesChannelId, iLevelId, iAreaId, iDepartmentId, iFamilyId, iManufacturer, iBrand, SalesCompanyId)),                                     new GreaterEqualsFilter(new ReflectionExtractor("getEndDate" ), iEndDate)); AndFilter finalFilter = new AndFilter(composite, new LessEqualsFilter(new ReflectionExtractor("getStartDate" ), iStartDate)); NamedCache globalDiscountsCache = CacheFactory.getCache(CacheConstants.GLOBAL_DISCOUNTS_CACHE_NAME); Set applicableDiscounts = globalDiscountsCache.entrySet(finalFilter);      Using this composite index the query improved dramatically and the execution time dropped to between 2 ms and  4 ms.  These execution times completely met the non-functional performance requirements . It should be noticed than when using the composite index the order of the attributes inside the ValueExtractor was not relevant.

    Read the article

  • Free, specific Ip2Location Database

    - by Andresch Serj
    I am searching for a free db (like an updated xml or csv file) that relates ip adresses to specific locations. I want more information than just the Country. I want some sort of region or city refference, even if that ends up to be a number that makes no sense to me. Doesn't have to be super correct or always up to date either. It is just to distinguish between usergroups and not to monitor or spy on them.

    Read the article

  • Jobs - are your SQL Agent jobs talking to you enough?

    - by fatherjack
    Most DBAs will have at least a couple of servers that have SQL Agent jobs that are scheduled to do various things on a regular basis. There is a whole host of supporting configuration settings for these jobs but some of the most important are notifications. Notification settings are there to keep you up to date on how your job executions went. You have options on types of notification - email, pager, net send, or an entry in the SQL Server Event Log and you get options on when each of these channels...(read more)

    Read the article

  • Algorithm for flattening overlapping ranges

    - by Joseph
    I am looking for a nice way of flattening (splitting) a list of potentially-overlapping numeric ranges. The problem is very similar to that of this question: Fastest way to split overlapping date ranges, and many others. However, the ranges are not only integers, and I am looking for a decent algorithm that can be easily implemented in Javascript or Python, etc. Example Data: Example Solution: Apologies if this is a duplicate, but I am yet to find a solution.

    Read the article

  • GarageBand w/ Git?

    - by jrc03c
    I'm trying to put a GarageBand project under version control with Git, but I've noticed that every time I make changes to my song and try to add and commit, Git claims that "there are no changes to commit" and that "everything is up-to-date." Is this because GarageBand files are binary or something weird that Git can't properly track? Or do I need to add some special flags to my Git commands? Thanks for the help!

    Read the article

  • MYSQL et le programme 1-Click

    - by swalker
    Les partenaires OPN Silver et Revendeurs réalisant des transactions par le biais de distributeurs agréés Oracle VAD peuvent désormais revendre des abonnements à MySQL Standard Edition et Enterprise Edition via le programme 1-Click. Les membres OPN Silver peuvent également revendre des Licences perpétuelles MySQL SE et EE. Pour accéder aux dernières informations en date, accédez à la Zone de connaissances des technologies Oracle 1-Click pour les PME.

    Read the article

  • Keep coding the wrong way to remain consistent? [closed]

    - by bwalk2895
    Possible Duplicate: Code maintenance: keeping a bad pattern when extending new code for being consistent, or not? To keep things simple let's say I am responsible for maintaining two applications, AwesomeApp and BadApp (I am responsible for more and no that is not their actual names). AwesomeApp is a greenfield project I have been working on with other members on my team. It was coded using all the fancy buzzwords, Multilayer, SOA, SOLID, TDD, and so on. It represents the direction we want to go as a team. BadApp is a application that has been around for a long time. The architecture suffers from many sins, namely everything is tightly coupled together and it is not uncommon to get a circular dependency error from the compiler, it is almost impossible to unit test, large classes, duplicate code, and so on. We have a plan to rewrite the application following the standards established by AwesomeApp, but that won't happen for a while. I have to go into BadApp and fix a bug, but after spending months coding what I consider correctly, I really don't want do continue perpetuate bad coding practices. However, the way AwesomeApp is coded is vastly different from the way BadApp is coded. I fear implementing the "correct" way would cause confusion for other developers who have to maintain the application. Question: Is it better to keep coding the wrong way to remain consistent with the rest of the code in the application (knowing it will be replaced) or is it better to code the right way with an understanding it could cause confusion because it is so much different? To give you an example. There is a large class (1000+ lines) with several functions. One of the functions is to calculate a date based on an enumerated value. Currently the function handles all the various calculations. The function relies on no other functionality within the class. It is self contained. I want to break the function into smaller functions (at the very least) and put them into their own classes and hide those classes behind an interface (at the most) and use the factory pattern to instantiate the date classes. If I just broke it out into smaller functions within the class it would follow the existing coding standard. The extra steps are to start following some of the SOLID principles.

    Read the article

  • Formation BPM BlueWorks le vendredi 26 mars, IBM vous invite à découvrir des outils de BPM accessibl

    Optimisez vos processus métier et gagnez en agilité BPM BlueWorks Date: Vendredi 26 Mars Location: Paris, France Face à un monde en constant changement, les entreprises doivent devenir plus agiles et adaptables pour atteindre les objectifs visés - tout en réduisant les coûts. BPM BlueWorks permet aux dirigeants d'entreprise et aux analystes fonctionnels de découvrir et explorer les données métier afin de les aider à mieux comprendre, évaluer et optimiser la productivité des processus métier (BPM). IBM vous invite à découvrir lors de la matinée du vendredi 26 mars une solution unique, qui combine du contenu métier, ...

    Read the article

  • where can I get Mono 2.10 for Maverick and Natty? [closed]

    - by burli
    Possible Duplicate: Upgrading to latest stable Mono Hi, I want to use Mono for some projects, but in Ubuntu (or Debian in general) is just 2.6.7 avalible. And I could not find any packages or PPAs. I tried to compile it myself, but I failed. Where can I get the current Mono 2.10 Version for Ubuntu Maverick and Natty? http://badgerports.org/ only supports Lucid and Hardy and is not up to date

    Read the article

  • Is this high coupling?

    - by Bono
    Question I'm currently working a on an assignment for school. The assignment is to create a puzzle/calculator program in which you learn how to work with different datastructures (such as Stacks). We have generate infix math strings suchs as "1 + 2 * 3 - 4" and then turn them in to postfix math strings such as "1 2 + 3 * 4 -". In my book the author creates a special class for converting the infix notation to postfix. I was planning on using this but whilst I was about to implement it I was wondering if the following is what you would call "high coupling". I have read something about this (nothing that is taught in the book or anything) and was wondering about the aspect (since I still have to grasp it). Problem I have created a PuzzleGenerator class which generates the infix notation of the puzzle (or math string, whatever you want to call it) when it's instantiated. I was going to make a method getAnswer() in which I would instantiate the InToPost class (the class from the book) to convert the infix to postfox notation and then calculate the answer. But whilst doing this I thought: "Is using the InToPost class inside this method a form a high coupling, and would it be better to place this in a different method?" (such as a "convertPostfixToInfix" method, inside the PuzzleGenerator class) Thanks in advance.

    Read the article

  • Should I continue teaching old Java input methods alongside the new ones?

    - by user1598390
    I've been imparting a Java introduction course for several years. Some slides explain how to read from files and keyboard using BufferedReaders, InputStreams, FileInputStreamReaders etc. I'm adding slides explaining how to achieve this using more up to date approaches like Scanner. Should I leave out the old BufferedReaders, InputStreams and FileInputStreamReaders slides altogether, and teach only the new methods, or should I continue to teach these methods for the sake of completeness ? Will my students benefit from learning how to read from files and keyboard the old way ?

    Read the article

  • How to use multiple search keys?

    - by user32565
    I have a database wherein the files are named abcd100.00b, abcd101.00b, etc. I need a code where when the user enters abcd separate then 100 to 110, all the files with the name abcd and in the range 100 to 110 should get displayed now the following code can display only the first four characters. How do I implement this? <?php //capture search term and remove spaces at its both ends if the is any $searchTerm = trim($_GET['keyname']) ; //check whether the name parsed is empty if($searchTerm == "rinex_file") { echo "Enter name you are searching for."; exit(); } if($searchTerm == "rinex_file") { echo "Enter name you are searching for."; exit(); } //database connection info $host = "localhost"; //server $db = "rinex"; //database name $user = "m"; //dabases user name $pwd = "c"; //password //connecting to server and creating link to database $link = mysqli_connect($host, $user, $pwd, $db); //MYSQL search statement $query = "SELECT * FROM rinexo WHERE rinex_file LIKE '%$searchTerm%'"; $results = mysqli_query($link, $query) ; /* check whethere there were matching records in the table by counting the number of results returned */ if(mysqli_num_rows($results) >= 1){ echo '<table border="1"> <tr> <th>rinex version</th> <th>program</th> <th>date</th> <th>maker name</th> <th>maker number</th> <th>observer</th> <th>agency</th> <th>position_X_Y_Z</th> </tr>'; while($row = mysqli_fetch_array($results)){ echo '<tr> <td>'.$row['rinex_version'].'</td> <td>'.$row['pgm'].'</td> <td>'.$row['date'].'</td> <td>'.$row['marker_name'].'</td> <td>'.$row['marker_no'].'</td> <td>'.$row['observer'].'</td> <td>'.$row['agency'].'</td> <td>'.$row['position_X_Y_Z'].'</td> </tr>'; } echo '</table>'; }else{ echo "There was no matching record for the name " . $searchTerm; }

    Read the article

  • What is an easy way to see how often recently added pages are viewed in google analytics?

    - by cboettig
    Google Analytics makes it very easy to see the number of views of the most-viewed pages, but I cannot figure out how to see the number of views a particular page has received, or the number of views of recently added pages (e.g. blog posts). Is it possible to sort the pageviews list by date the page was added? Can this be done without having to externally create a list of recent pages and use the analytics API?

    Read the article

  • Google Apps Marketplace, les applications les plus téléchargées sont de plus en plus complexes : gestion de projet, CRM, ERP, finances

    Google Apps Marketplace, les applications les plus téléchargées Elles sont de plus en plus complexes : gestion de projet, CRM, ERP, finances Le dernier Marketplace en date de Google, la galerie d'applications professionnelles complémentaires des Google Apps (Google Docs, Google Site, Blogger, Gmail, Agenda, etc), est un succès. C'est en tout cas l'avis de Google qui communique aujourd'hui les premiers résultats significatifs depuis le lancement officiel de cette galerie. ...

    Read the article

  • MySQL User Camp - Bangalore, India

    - by Lenka Kasparova
    Another MySQL User Group meeting called "MySQL User Camp-Bangalore" is announced for Jun 20 in Bangalore, India!! Please find more details below: Date and time: June 20, 2014 at 3PM IST Place: Bangalore, Kalyani Magnum campus Registration: Registration is needed, please contact [email protected] URL Agenda: MySQL 5.7 New Features and NoSQL support in MySQL Sharding as implemented in MySQL Fabric Open discussion with MySQL developers We are looking forward to seeing you on Jun 20!!

    Read the article

  • I need advice from experience web developer [on hold]

    - by user129923
    I want to be a great web developer I searched on internet that I should start with HTML & CSS then JavaScript , i start learning HTML I'm using notpad++ , I feel bored sometimes with it so I heard about Aptana studio , is it good to start with ? and can you give me some advices to avoid the mistakes in this career , also I need some BLOGS and website to help me to keep-up-to-date with web development, thank you

    Read the article

  • Today Will Be 11/11/11 – 11:11:11 for the First Time in 100 Years

    - by The Geek
    Today at 11:11 and 11 seconds, the date and time will be a perfect same-number palindrome—that is, it will read the same backwards and forwards, using the same number. It will be 11:11:11 on 11/11/11, and that won’t happen again for another 100 years. Naturally, it’ll happen again at 11 PM, for those that don’t observe military time. Use Amazon’s Barcode Scanner to Easily Buy Anything from Your Phone How To Migrate Windows 7 to a Solid State Drive Follow How-To Geek on Google+

    Read the article

  • Increase Availability for Data Center Virtual Environments

    - by Antoinette O'Sullivan
    With Oracle VM, you can increase availability and add flexibility for data center virtual environments. To get started, take training on Oracle VM Server for x86 and Oracle VM Server for SPARC as appropriate for your systems. You can take these live instructor-led courses from your own desk as a live-virtual event or travel to an education center for an in-class event. The Oracle VM Administration: Oracle VM Server for x86 course, in 3 days, teaches you about creating NFS and iSCI repositories, migration, cloning and exercising high availabillity. In-class events already on the schedule include:  Location  Date  Delivery Language  Zagreb, Croatia  11 November 2013  Croatian  Prague, Czech Republic  21 October 2013  Czech  Ballerup, Denmark  26 August 2013  English  Bordeaux, France  18 September 2013  French  Paris, France  9 October 2013  French  Strasbourg, France  11 September 2013  French  Hamburg, Germany  30 Septemeber 2013  German  Munich, Germany  28 October 2013  German  Budapest, Hungary  9 September 2013  Hungarian  Riga, Latvia  30 September 2013  Latvian  Oslo, Norway  16 September 2013  English  Warsaw, Poland  28 October 2013  Polish  Bucharest, Romania  14 October 2013  English  Istanbul, Turkey  23 December 2013  Turkish  Indonesia, Jakarta  19 August 2013  English  Canberra, Australia  4 November 2013  English  Melbourne, Australia  6 November 2013  English  Sydney, Australia  25 November 2013  English  San Francisco, CA, United States  16 September 2013  English  Roseville, MN, United States  21 October 2013  English  St Louis, MO, United States  11 November 2013  English  Reston, VA, United States  31 July 2013  English  Buenos Aires, Argentina  21 August 2013  Spanish The Oracle VM Server for SPARC: Installation and Configuration course, in 2 days, teaches you about configuring control and service domains, creating guest domains, using virtual disks and networks, and migration. In-class events already on the schedule include:  Location  Date  Delivery Language  Budapest, Hungary  12 September 2013  Hungarian  Prague, Czech Republic  9 September 2013  Czech  Colombes, France  7 October 2013  French  Stuttgart, Germany  28 October 2013  German  Madrid, Spain  5 September 2013  Spanish  Istanbul, Turkey 30 September 2013  Turkish   Petaling Jaya, Malaysia 15 August 2013  English   Singapore 5 August 2013  English   Cnaberra, Australia  12 August 2013 English  Melbourne, Australia  30 October 2013 English  Sydney, Australia  26 August 2013 English To register for a course or to learn more about Oracle's virtualization curriculum, go to http://education.oracle.com/virtualization.

    Read the article

  • I don't understand how TDD helps me get a good design if I need a design to start testing it

    - by Michael Stum
    I'm trying to wrap my head around TDD, specifically the development part. I've looked at some books, but the ones I found mainly tackle the testing part - the History of NUnit, why testing is good, Red/Green/Refactor and how to create a String Calculator. Good stuff, but that's "just" Unit Testing, not TDD. Specifically, I don't understand how TDD helps me get a good design if I need a Design to start testing it. To illustrate, imagine these 3 requirements: A catalog needs to have a list of products The catalog should remember which products a user viewed Users should be able to search for a product At this points, many books pull a magic rabbit out of a hat and just dive into "Testing the ProductService", but they don't explain how they came to the conclusion that there is a ProductService in the first place. That is the "Development" part in TDD that I'm trying to understand. There needs to be an existing design, but stuff outside of entity-services (that is: There is a Product, so there should be a ProductService) is nowhere to be found (e.g., the second requirement requires me to have some concept of a User, but where would I put the functionality to remind? And is Search a feature of the ProductService or a separate SearchService? How would I know which I should choose?) According to SOLID, I would need a UserService, but if I design a system without TDD, I might end up with a whole bunch of Single-Method Services. Isn't TDD intended to make me discover my design in the first place? I'm a .net developer, but Java resources would also work. I feel that there doesn't seem to be a real sample application or book that deals with a real line of business application. Can someone provide a clear example that illustrates the process of creating a design using TDD?

    Read the article

  • What is the Need of Website Development?

    In the corporate world, the danger of not having a strong web presence cannot be imagined by the businesses. Every business needs to be up to date, to be successful and boost up their business; it needs to have a place in the World Wide Web.

    Read the article

  • EMEA Hardware: Quarterly Partner Sales Update Roadshow

    - by Cinzia Mascanzoni
    Starting July this year Oracle’s A&C, Partner Enablement and Hardware Teams will be organizing quarterly face-to-face sales training events to keep you up to date with Hardware sales news, latest products and solutions announcements, competitive positioning, sales tools -- all of this with an Oracle-on-Oracle approach. We are pleased to invite you to attend the first Oracle EMEA Hardware Quarterly Partner Sales Update Roadshow running in 10 different cities across EMEA. Click here for Dates & Location, Agenda and to Register.

    Read the article

  • Web Content Helps SEO - 3 Super Easy Ways to Keep Your Website Fresh

    To keep your site up-to-date in the eyes of your visitors, as well as in the eyes of the search engines, you've got to look beyond "just getting the site up and live" in the first place. Search engines will eventually give up on sites that just never change in favor of those that continually make improvements and strive to provide their visitors with a fresh experience.

    Read the article

< Previous Page | 221 222 223 224 225 226 227 228 229 230 231 232  | Next Page >