diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
index f4a8cdde3ec963d1c38b3374d64fe6cc192ff2ec..deaba0aa3ac6827c88203178545e9aee03f24d25 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java
@@ -281,6 +281,15 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements
         dataSets.addAll(getDataDAO().listDataSets(sample));
     }
 
+    @Override
+    public final void loadBySampleTechIdWithoutRelationships(final TechId sampleId)
+    {
+        assert sampleId != null : "Unspecified sample id";
+        final SamplePE sample = getSampleDAO().getByTechId(sampleId);
+        dataSets = new ArrayList<DataPE>();
+        dataSets.addAll(getDataDAO().listDataSetsWithoutRelationships(sample));
+    }
+
     @Override
     public void loadByExperimentTechId(final TechId experimentId)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java
index d42922fcc8af7341004a13a063e3f8ec89e35140..f61470a941a75951beb9b252e1526faa322e9830 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/IDataSetTable.java
@@ -53,6 +53,12 @@ public interface IDataSetTable
      */
     void loadBySampleTechId(final TechId sampleId);
 
+    /**
+     * Loads data sets which are linked to the sample with given <var>sampleId</var>. Datasets
+     * doesn't include relationships or properties.
+     */
+    void loadBySampleTechIdWithoutRelationships(final TechId sampleId);
+
     /**
      * Loads data sets which are linked to the experiment with given <var>experimentId</var>.
      */
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java
index 6f44ba178c80918917be98bf21f39d93c9cf9115..cce2e548b360364aeb8f44531d50ca73adedea21 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/IDataDAO.java
@@ -63,6 +63,15 @@ public interface IDataDAO extends IGenericDAO<DataPE>
      */
     public List<DataPE> listDataSets(final SamplePE sample) throws DataAccessException;
 
+    /**
+     * List the {@link DataPE} for given <var>sample</var>. The datasets are fetched without the
+     * additional relationships or properties.
+     * 
+     * @returns list of {@link DataPE}s that are related to given {@link SamplePE}.
+     */
+    public List<DataPE> listDataSetsWithoutRelationships(final SamplePE sample)
+            throws DataAccessException;
+
     /**
      * List the {@link DataPE} for given <var>experiment</var>.
      * 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
index 0869b8fc13dc257dd28c1b806ee7f71cd50661c5..b646075da824efb101f8c3193c64c511c916c40f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/DataDAO.java
@@ -181,6 +181,25 @@ final class DataDAO extends AbstractGenericEntityWithPropertiesDAO<DataPE> imple
         return results;
     }
 
+    @Override
+    public final List<DataPE> listDataSetsWithoutRelationships(final SamplePE sample)
+            throws DataAccessException
+    {
+        assert sample != null : "Unspecified sample.";
+
+        final String query = String.format("from %s e where e.sampleInternal = ?", TABLE_NAME);
+        final List<DataPE> list = cast(getHibernateTemplate().find(query, toArray(sample)));
+
+        // distinct does not work properly in HQL for left joins
+        distinct(list);
+        if (operationLog.isDebugEnabled())
+        {
+            operationLog.debug(String.format("%d external data have been found for [sample=%s].",
+                    list.size(), sample));
+        }
+        return list;
+    }
+
     @Override
     public final List<DataPE> listDataSets(final SamplePE sample) throws DataAccessException
     {