<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=AutoFetch</id>
	<title>AutoFetch - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=AutoFetch"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=AutoFetch&amp;action=history"/>
	<updated>2026-10-26T21:11:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=AutoFetch&amp;diff=6688396&amp;oldid=prev</id>
		<title>imported&gt;Toa697: Add citation to the relevant paper that first introduced autofetch, attempt to improve opening description.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=AutoFetch&amp;diff=6688396&amp;oldid=prev"/>
		<updated>2024-01-12T14:58:06Z</updated>

		<summary type="html">&lt;p&gt;Add citation to the relevant paper that first introduced autofetch, attempt to improve opening description.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Multiple issues|&lt;br /&gt;
{{advert|date=January 2018}}&lt;br /&gt;
{{Refimprove|date=October 2021}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;AutoFetch&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web |last1=Ibrahim |first1=Ali |last2=Cook |first2=William |title=Automatic Prefetching by Traversal Profiling in Object Persistence Architectures |url=https://www.cs.utexas.edu/users/wcook/papers/AutoFetch/autofetch.pdf |access-date=12 January 2024}}&amp;lt;/ref&amp;gt; is a technique for automating the normally manual process of specifying prefetching hints for [[object–relational mapping]] queries.&lt;br /&gt;
&lt;br /&gt;
Ali Ibrahim and William Cook at the University of Texas at Austin developed the idea of &amp;quot;AutoFetch&amp;quot; including an implementation for [http://sourceforge.net/projects/autofetch Hibernate] and followed later by an implementation in [[Ebean]].&lt;br /&gt;
&lt;br /&gt;
== Benefits ==&lt;br /&gt;
&lt;br /&gt;
=== Improving the modularity of application code ===&lt;br /&gt;
AutoFetch uses the [[State (computer science)|program state]] (typically the [[call stack]]) to classify [[Information retrieval|queries]]. This means that AutoFetch can tune the same query in different ways depending on HOW it was called. &lt;br /&gt;
&lt;br /&gt;
For example, a Data Access API such as &amp;lt;code&amp;gt;findCustomer(int customerId)&amp;lt;/code&amp;gt; can be tuned differently depending on the callers of the method.&lt;br /&gt;
&lt;br /&gt;
=== Reducing the development and maintenance burden from Developers ===&lt;br /&gt;
Because AutoFetch automatically gathers the profiling information developers do not need to manually try and gather this information and apply performance optimizations to the code.&lt;br /&gt;
&lt;br /&gt;
AutoFetch can monitor the object graph usage so that if the usage changes, the tuning of the query can change to suit. This reduces the code maintenance issues for developers and maintains optimal performance as usage changes over time.&lt;br /&gt;
&lt;br /&gt;
== Working Principle ==&lt;br /&gt;
AutoFetch collects object graph usage when queries are executed. It collects the &amp;#039;profile&amp;#039; information which is later used to automatically tune the query on subsequent executions. The ORM query is tuned by determining and automatically adding the correct prefetch directives for each query.&lt;br /&gt;
&lt;br /&gt;
This has shown to improve the performance of the application by reducing &amp;quot;[[lazy loading]]&amp;quot;. For ORMs that support partial objects, AutoFetch is able to also tune the query by including the properties that the application uses rather than all properties.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Object–relational mapping]]&lt;br /&gt;
* [[Hibernate (Java)|Hibernate]]&lt;br /&gt;
* [[Ebean]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* https://web.archive.org/web/20080418084615/http://www.cs.utexas.edu/~aibrahim/autofetch/&lt;br /&gt;
* http://sourceforge.net/projects/autofetch/&lt;br /&gt;
&lt;br /&gt;
[[Category:Object–relational mapping]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Toa697</name></author>
	</entry>
</feed>