A system for creating a selective snapshot of a database that is stored as one or more segments (32, 131-134), wherein a segment comprises one or more memory pages, the system comprising: - a determining unit (203, 205) configured to determine whether a snapshot process (230, 232) that has been forked from a parent process is configured to access a selected segment of the one or more segments, - an assigning unit configured to assign a positive mapping status to an accessed segment (210, 212) for which the determining unit has determined that it is accessed by the snapshot process and for assigning a negative mapping status to a non-accessed segment for which the determining unit has determined that it is not accessed by the snapshot process, and - a snapshot unit configured to create a snapshot, wherein creating the snapshot comprises a step of forking the snapshot process with an address space of the snapshot process that comprises a subset of the one or more segments, wherein a non-mapped segment that has been assigned a negative mapping status is not mapped in the address space, wherein the determining unit (203, 205) is configured to determine whether the snapshot process (230, 232) is configured to access the selected segment (32, 131-134) before execution of the snapshot process is started; and to determine during execution of an active snapshot process (232, 234) whether the active snapshot process is configured to access the selected segment (32, 131-134) during a remaining execution time of the active snapshot process; and the assigning unit comprises a compiling unit that is configured to compile a physical execution plan created by said parent process to be executed by the snapshot process; wherein the physical execution plan comprises an ordered set of steps being used to access data in the database, and is used for determining when the snapshot process (230, 232) requires access to which segments. - a determining unit (203, 205) configured to determine whether a snapshot process (230, 232) that has been forked from a parent process is configured to access a selected segment of the one or more segments, - an assigning unit configured to assign a positive mapping status to an accessed segment (210, 212) for which the determining unit has determined that it is accessed by the snapshot process and for assigning a negative mapping status to a non-accessed segment for which the determining unit has determined that it is not accessed by the snapshot process, and - a snapshot unit configured to create a snapshot, wherein creating the snapshot comprises a step of forking the snapshot process with an address space of the snapshot process that comprises a subset of the one or more segments, wherein a non-mapped segment that has been assigned a negative mapping status is not mapped in the address space, the determining unit (203, 205) is configured to determine whether the snapshot process (230, 232) is configured to access the selected segment (32, 131-134) before execution of the snapshot process is started; and to determine during execution of an active snapshot process (232, 234) whether the active snapshot process is configured to access the selected segment (32, 131-134) during a remaining execution time of the active snapshot process; and the assigning unit comprises a compiling unit that is configured to compile a physical execution plan created by said parent process to be executed by the snapshot process; wherein the physical execution plan comprises an ordered set of steps being used to access data in the database, and is used for determining when the snapshot process (230, 232) requires access to which segments.